【问题标题】:Use environment variable to set container version inside Dockerfile使用环境变量在 Dockerfile 中设置容器版本
【发布时间】:2019-12-30 07:13:07
【问题描述】:

是否可以使用环境变量在 Dockerfile 中设置容器版本?

例如:

.env

NODE_VERSION=12.14.0-alpine

Dockerfile

ARG NODE_VERSION

FROM node:${NODE_VERSION}

[...]

如果可能的话,可以这样设置容器版本吗? 我正在使用 macOS 和 Docker v19.03.5

【问题讨论】:

  • 您展示的提议的 Dockerfile 是否有效?我希望它会;请参阅 Dockerfile 文档中的 Understand how ARG and FROM interact。 (不过,它不是环境变量。)
  • @DavidMaze 不像我预期的那样。我想从 .env 文件中获取 NODE_VERSION 环境变量。但考虑到答案,我认为这是不可能的。

标签: docker dockerfile


【解决方案1】:

是的,您可以使用--build-arg docker build 命令参数访问环境变量。

$ docker build --build-arg NODE_VERSION=12.14.0-alpine

更多教程信息记录在这里:https://vsupalov.com/docker-arg-env-variable-guide/

【讨论】:

    【解决方案2】:

    您也可以在 Dockerfile 中使用 ENV 来设置 ENV。例如

    #Declare Variables
    
    ENV SERVICE_NAME services/clicks
    ENV PKG_PATH /root/home/package
    ENV GO_VERSION 1.12.0
    ENV ALPINE_VERSION 3.9
    FROM golang:GO_VERSION-alpineALPINE_VERSION
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-21
      • 2018-10-22
      • 2019-09-11
      • 1970-01-01
      • 2019-01-09
      • 2019-12-07
      • 2018-01-13
      • 1970-01-01
      相关资源
      最近更新 更多