【发布时间】:2021-11-03 06:57:02
【问题描述】:
在我的 docker-compose 文件中,有超过 3 个服务。我从 docker 命令中传递了一个带有 makefile 的两个变量。但我面临一个问题 - 执行第一个命令后,第二个命令类似没有执行。
请参阅此示例以获得更好的理解-
docker-compose 文件是 -
version: '3.7'
services:
ping:
container_name: ping_svc
image: "${PING_IMAGE_NAME}${PING_IMAGE_TAG}"
ports:
- 8080:8080
command: serve
environment:
- CONSUL_URL=consul_dev:8500
- CONSUL_PATH=ping
tty: true
id:
container_name: id_svc
image: "${ID_IMAGE_NAME}${ID_IMAGE_TAG}"
ports:
- 8081:8081
command: serve
environment:
- CONSUL_URL=consul_dev:8500
- CONSUL_PATH=id
tty: true
我的makefile命令是-
# setting ping_image
@PING_IMAGE_NAME="ping-svc:" PING_IMAGE_TAG="1.0" docker-compose up -d
# setting id_image
@ID_IMAGE_NAME="id-svc:" ID_IMAGE_TAG="1.0" docker-compose up -d
PING_IMAGE_NAME 和 PING_IMAGE_TAG 设置成功,但下一行未执行。为什么?
有没有更好的方法来做到这一点?
【问题讨论】:
-
GATEWAY_IMAGE_NAME != ID_IMAGE_NAME
-
对不起,是我的错误,已编辑。
-
也许创建一个配置文件 (.env) 是更好的方法:docs.docker.com/compose/environment-variables
-
是的,实际上我必须从命令行传递这些变量。
-
通过将所有变量放在 1 行中解决了这个问题。
标签: linux docker makefile docker-compose