如何使用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
无效
名称仅由字母数字字符和下划线组成的单词,以字母字符或下划线开头。 也被称为标识符。
你必须使用下划线字符_
来代替。