【问题标题】:How to set docker image name in docker compose file from user input?如何根据用户输入在 docker compose 文件中设置 docker 映像名称?
【发布时间】:2021-12-16 18:35:05
【问题描述】:

升级 docker-compose 文件时,我想根据用户输入设置服务映像。如果输入图像中没有任何标签,我想设置最新标签。如何做到这一点?

例如,我有这个 docker-compose 文件-

    version: '3.7'

    services:
         ping:
           container_name: svc_name
           image: image_name:tag_name
           ports:
             - 8080:8080
           command: serve
           environment:
             - CONSUL_URL=consul_dev:8500
             - CONSUL_PATH=ping
           tty: true

在这里,我想在构建撰写文件时从用户输入中设置image_name:tag_name。必须有更多服务,所以我必须指定我在哪个服务上获取输入图像。

【问题讨论】:

  • @abu-fahrad 你必须比这更具体。用户输入是什么意思?从哪里?前端还是后端?应用程序是什么?你会有多少用户?让用户直接写入撰写文件而不进行任何检查绝对是一个非常糟糕的主意。
  • 是的,它来自 BE。我正在创建一个生成文件,我想在其中指定此图像名称以及图像 tag_name。
  • 其实这是一个微服务的compose文件。如果我更改服务然后进行构建,我不想在撰写文件中手动更改。我只想更改makefile脚本。

标签: linux bash docker docker-compose docker-image


【解决方案1】:

我解决这个问题的方法是:

read -p "Please enter the PING service image name: " ping_image_name

if [ -z "${ping_image_name}" ]; then
  exit 1
fi

read -p "Please enter the OTHER service image name: " other_image_name

if [ -z "${other_image_name}" ]; then
  exit 1
fi

ping_image_name="${ping_image_name-default_ping_image_name}" \
other_image_name="${other_image_name-default_other_image_name}" \
docker-compose build ...command arguments...
    version: '3.7'

    services:
         ping:
           container_name: svc_name
           image: ${ping_image_name}
           ports:
             - 8080:8080
           command: serve
           environment:
             - CONSUL_URL=consul_dev:8500
             - CONSUL_PATH=ping
           tty: true

         other:
           container_name: svc_name
           image: ${ping_image_name}

【讨论】:

  • 谢谢安东尼奥。但是如何指定哪个服务的 image_name 呢?有多种服务。我只想建立 docker-compose 文件而不是构建。
  • 您好,您是在问一个新问题吗?这似乎与我回答的第一个不同。如果是这样,请接受,然后打开第二个以获得更多信息。问候。
  • 你的ans没问题。但也许你错过了我的最后一行问题。请阅读我的问题的最后一行。
  • 对不起,我再检查一遍。 :)
  • 我编辑了它。请再次检查我的解决方案。
猜你喜欢
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2020-01-30
  • 1970-01-01
  • 2015-07-07
  • 2019-06-30
  • 1970-01-01
  • 2019-04-10
相关资源
最近更新 更多