首页 > 解决方案 > 将变量传递给 Dockerfile 并在 Tag 版本中使用它?

问题描述

有谁知道我如何在 Dockerfile 和 docker-compose 文件中使用某种变量进行标记?

我注意到这里有 ARGS https://docs.docker.com/compose/compose-file/#args

所以看来我可以将它发送到 Dockerfile 但如何在 docker-compose 中使用它来标记版本。

例如

  postrgres:
    image: myrepo/postgres:$$HERE NEED TO USE THE VARIABLE AS TAG$$

    build: ./postgres

我想在 Dockerfil 中接收相同的值,并在 TAG 版本中使用它。

有人知道该怎么做吗?

检查了文档,但我找不到任何东西。

提前致谢

标签: dockerdocker-compose

解决方案


没有尝试过,但我会想象这样的配置:

  postrgres:
    image: myrepo/postgres:${POSTGRES_VERSION}
    build: ./postgres
    args:
      - POSTGRES_VERSION

Dockerfile 的开头如下:

ARG POSTGRES_VERSION
FROM  myrepo/postgres:${POSTGRES_VERSION}

然后让 docker compose 模板知道$POSTGRES_VERSION.
将它作为$POSTGRES_VERSION环境变量添加到您的 shell 中:

export POSTGRES_VERSION=12.0

或者只是在.env文件中设置值。


推荐阅读