[英]Shell variables expansion in text file preserving whitespace (e.g. docker-compose.yml usage in Rancher)
[英]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.