Dockerfile - 如何使用 ENV 指令附加 PATH?

ove*_*nge 7 docker dockerfile

ENV指令将环境变量设置为值。该值将出现在构建阶段所有后续指令的环境中


以下指令:

   ENV PATH=$PATH:$HOME/go/bin
Run Code Online (Sandbox Code Playgroud)

不附加PATH变量

$HOME/go/bin/root/go/bin

如何附加$HOME/go/bin$PATH?在下面的 docker 文件中

FROM golang:1.14.10
MAINTAINER xyz

ENV GOPATH=

ENV PATH=$PATH:$HOME/go/bin

RUN echo $PATH
Run Code Online (Sandbox Code Playgroud)

Rei*_*ica 3

显然,Docker 不允许您使用在or声明Dockerfile之外定义的环境变量。ENVARG

Dockerfile作为解决方法,您可以使用以下命令将名称/目录显式传递给您ARG

FROM golang:1.14.10
    
# set default to `root`
ARG USERNAME=root

ENV PATH=$PATH:/$USERNAME/go/bin

RUN echo $PATH
Run Code Online (Sandbox Code Playgroud)

然后你可以通过USERNAMEviadocker build --build-arg USERNAME=myuser

根据您的用例,您也可以使用RUN或来执行此操作ENTRYPOINT