在Docker中设置环境变量

万达达人

我在Docker创建一个容器时遇到了麻烦,该容器没有设置我在映像定义中设置的环境变量。

我创建了一个Dockerfile,该文件生成OpenSuse 42.3的映像。我需要在映像中设置一些环境变量,以便从映像启动容器的任何人都可以使用我编译并放置在映像中的代码。

我创建了一个名为“ image_env_setup.sh”的外壳文件,其中包含必要的环境变量定义。我还手动将这些环境变量定义添加到了Dockerfile中。

USER codeUser
COPY ./docker/image_env_setup.sh /opt/MyCode

ENV PATH="$PATH":"/opt/MyCode/bin:/usr/lib64/mpi/gcc/openmpi/bin"
ENV LD_LIBRARY_PATH="/usr/lib64:/opt/MyCode/lib:"
ENV PS1="[\u@docker: \w]\$ "
ENV TERM="xterm-256color"
ENV GREP_OPTIONS="--color=auto"
ENV EDITOR=/usr/bin/vim

USER root
RUN chmod +x  /opt/MyCode/image_env_setup.sh
USER codeUser
RUN /opt/MyCode/image_env_setup.sh
RUN /bin/bash -c "source /opt/MyCode/image_env_setup.sh"

我用来创建容器的命令是:

docker run  -it -d --name ${containerName}  -u $userID:$groupID         \
            -e USER=$USER --workdir="/home/codeUser"            \
            --volume="${home}:/home/codeUser" ${imageName} /bin/bash  \

唯一有效的方法是传递shell文件,以便在容器启动时再次运行。

docker start $MyImageTag
docker exec -it $MyImageTag /bin/bash --rcfile /opt/MyCode/image_env_setup.sh

我不认为仅在容器中设置shell变量就不会那么困难,以便向其中的任何条目都可以为用户提供已经定义的变量。

野野

RUN条目不能修改环境变量(我假设您要在中设置更多变量image_env_setup.sh)。ENVDockerfile中的条目(以及类似docker选项的对象--rcfile可以更改环境)。

您也可以决定源image_env_setup.sh.bashrc,当然。

例如,您可以预制a.bashrc并使用进行拉入COPY,或者执行

RUN echo '. /opt/MyCode/image_env_setup.sh' >> ~/.bashrc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

docker compose环境变量未在Dockerfile中设置变量

来自分类Dev

Docker从命令或文件中设置环境变量

来自分类Dev

如何在docker-compose中设置环境变量

来自分类Dev

读取docker设置的react中的环境变量

来自分类Dev

如何在 docker run 中设置环境变量

来自分类Dev

如何在 Tomcat docker 中设置不同的环境变量?

来自分类Dev

在 docker 环境中显示环境变量

来自分类Dev

在C中设置DEBUG环境变量

来自分类Dev

无法在jenkinsfile中设置环境变量

来自分类Dev

在Gatsby中设置环境变量

来自分类Linux

在AWS实例中设置环境变量

来自分类Dev

在 Javascript 中设置环境变量

来自分类Dev

在 Symfony 中设置默认环境变量

来自分类Dev

从库C ++中设置环境变量

来自分类Dev

在Python中设置环境变量

来自分类Dev

在makefile中设置环境变量

来自分类Dev

SETX从文件中设置环境变量

来自分类Dev

在环境变量中设置额外的主机

来自分类Dev

在git bash中设置环境变量

来自分类Java

在ant脚本中设置环境变量

来自分类Python

在virtualenv中设置环境变量

来自分类Python

在virtualenv中设置环境变量

来自分类Linux

在C中设置环境变量

来自分类Dev

无法在〜/ .profile中设置环境变量

来自分类Python

在python脚本中设置环境变量

来自分类Dev

无法在 Apache 中设置环境变量

来自分类Dev

在shell别名中设置环境变量

来自分类Dev

在Java 8中设置环境变量

来自分类Dev

在Google Colab中设置环境变量