簡體   English   中英

如何使用shell文件將參數傳遞給docker-compose.yml

[英]How can I pass the argument to docker-compose.yml using shell file

我有docker-compose.yml如下:

version: '2'

services:
  eureka-server:
    image: some-dtr-name/some-orgname/some-reponame:some-versionname
    mem_limit: somememory
    environment:
      SPRING_PROFILES_ACTIVE: some-profile
      JAVA_OPTS: -Xms256m -Xmx512m
    ports:
    - "some-port:some-port"
    restart: always
    networks:
    - cloud

networks:
  cloud:
   driver: bridge

我想傳遞some-dtr-name,some-orgname,some-reponame,some-versionname,somememory,some-profile,some-profile,some-port作為docker-compose文件的一個假設。 我正在使用shell文件執行此任務。

#!/bin/bash
some-dtr-name="$1"
some-orgname="$2"
some-reponame="$3"
some-versionname="$4"
somememory="$5"
some-profile="$6"
some-profile="$7"
some-port="$8"

docker-compose up

我怎么能做這個任務?

Docker compose使用${}語法支持環境變量替換: https//docs.docker.com/compose/compose-file/#variable-substitution

因此,如果您定義了環境變量some_port ,則在運行some_port docker-compose ,您可以在${some_port} -compose文件${some_port}其稱為${some_port}

ports:
- "${some_port}:${some_port}"

另外需要注意的是,示例代碼中的變量名稱包含破折號-bash無效

name僅由字母數字字符和下划線組成的單詞,以字母字符或下划線開頭。 也稱為標識符。

你必須使用下划線字符_而不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM