如何使用shell文件将parameter passing给docker-compose.yml

我有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 

我想传递一些-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组合支持环境variablesreplace,使用${}语法: https : //docs.docker.com/compose/compose-file/#variable-substitution

所以,如果你定义了一个环境variablessome_port ,那么在你运行some_port docker-compose ,你可以在你的${some_port} -compose文件${some_port}它引用为${some_port}

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

另外需要注意的是,示例代码中的variables名包含破折号-bash无效

名称仅由字母数字字符和下划线组成的单词,以字母字符或下划线开头。 也被称为标识符。

你必须使用下划线字符_来代替。