【问题标题】:Build the docker image with environment variables使用环境变量构建 docker 镜像
【发布时间】:2017-08-23 14:59:05
【问题描述】:

所以目标是为 prod 和测试提供不同的图像,因此某些变量会相应更改,因此我需要在构建期间设置 env 变量。

# Dockerfile
ENV Somename: $value
...

docker build --build-arg Somename=value -t test .

docker run -d -p port:port test

这个工作流程没有使用环境变量

【问题讨论】:

  • 你应该有多个 Dockerfile。 Dockerfile 不应依赖于任何变量

标签: docker docker-compose dockerfile docker-machine


【解决方案1】:

首先,您需要使用 ARG 命令使用 dockerfile 中的 build-arg。

FROM alpine

# consume the build arg    
ARG somename  

# persist the env variable in the built image
ENV somename=$somename  

# somename will appear as an env variable
RUN echo $somename 
RUN env

运行构建命令docker build --build-arg somename=hello . 会显示一个环境变量somename=hello

【讨论】:

    【解决方案2】:

    你的语法不正确,不要放

    :

    要么是

    ENV somename somevalue

    ENV somename=somevalue

    查看文档

    https://docs.docker.com/engine/reference/builder/#env

    【讨论】:

      猜你喜欢
      • 2016-02-06
      • 2017-08-26
      • 2023-02-02
      • 2019-08-12
      • 1970-01-01
      • 2019-09-21
      • 1970-01-01
      • 2019-02-25
      • 2023-03-03
      相关资源
      最近更新 更多