可以将来自docker-compose.yml的env变量传递给dockerfile吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以将来自docker-compose.yml的env变量传递给dockerfile吗?相关的知识,希望对你有一定的参考价值。

是否可以将来自docker-compose.yml文件的env传递给dockerfile。

我在dockerfile里面有这样的:

RUN $(npm bin)/ng build --prod --env=prod

但我想要的是当docker-compose.yml有一个build_env时:

environment:
            BUILD_ENV: 'test'

然后我想要码头工人

RUN $(npm bin)/ng build --prod --env=test

我如何实现这样的目标?或者还有其他更好的解决方案吗?

答案

您可以查看此文档:

https://docs.docker.com/compose/compose-file/#args

build:
  context: .
  args:
    - buildno=1
    - password=secret
    - buildenv=prod

-

ARG buildno
ARG password
ARG buildenv

RUN echo "Build number: $buildno"
RUN script-requiring-password.sh "$password"
RUN $(npm bin)/ng build --prod --env="$buildenv"

以上是关于可以将来自docker-compose.yml的env变量传递给dockerfile吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何将docker-compose.yml转换为Dockerfile

Docker Compose:将 docker-compose.yml 中的不同服务部署到不同的主机集

如何使用来自其他目录的 docker-compose 环境变量

我应该把 docker-compose.yml 放在哪里

“docker-compose”命令为 docker-compose.yml 文件设置路径

向 docker-compose.yml 公开随机端口