将变量从 makefile 传递到 docker compose 文件?

Abu*_*had 6 linux makefile docker docker-compose

在我的 docker-compose 文件中,有超过 3 个服务。我使用 makefile 从 docker 命令传递两个变量。但我面临一个问题 - 执行第一个命令后,类似的第二个命令不执行。

请参阅此示例以更好地理解 -

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
Run Code Online (Sandbox Code Playgroud)

我的 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
Run Code Online (Sandbox Code Playgroud)

PING_IMAGE_NAME设置PING_IMAGE_TAG成功,但从下一行开始未执行。为什么?有没有更好的方法来做到这一点?

Abu*_*had 1

我通过将所有变量放在一行中解决了这个问题。

像这样-

    @ID_IMAGE_NAME="id-svc:" ID_IMAGE_TAG="1.0" \
    PING_IMAGE_NAME="ping-svc:" PING_IMAGE_TAG="1.0" \
    docker-compose up -d  ping  id
Run Code Online (Sandbox Code Playgroud)

pingid我的容器名称。

也许问题是每次我升级 docker-compose 时。