当前位置: 首页 > 知识库问答 >
问题:

在docker运行命令中传递ENV

方增
2023-03-14

有没有一种方法可以传递变量让我们假设在本例中,我想使用env animals=“turtle,monkey,goose”将动物列表传递到entrypoint.sh文件中

但我希望能够在运行容器时传递不同的动物,例如Docker run-t image animals=“mouse,rat,kangaroo”

运行docker run命令时如何传递参数?

目标是在使用docker run命令时使用该变量,并将它们插入到entrypoint.sh文件中

现在我在我的DockerFile中进行了硬编码。但是我希望能够在运行docker run命令时做到这一点,这样我就不必总是更改dockerfile。

FROM anapsix/alpine-java:8u121b13_jdk

ENV FILE_NAME="file_to_run.zip"

ENV animals="turtle, monkey, goose"

ADD ${FILE_NAME} .

RUN echo "${FILENAME} ${animals}" > ./entrypoint.sh    

CMD [ "/bin/ash", "./entrypoint.sh" ]

共有1个答案

西门骁
2023-03-14

看起来您可能混淆了映像构建和容器运行。如果两者之间的区别还不是很清楚,我建议复习一些其他的问题和文档,比如:

在Docker中,容器和图像有什么区别?https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

RUN echo "${FILENAME} ${animals}" > ./entrypoint.sh

有了上面的内容,这些变量将在映像构建过程中展开。EntryPoint.sh将不包含${FILENAME}${animals}。相反,它将包含

file_to_run.zip turtle, monkey, goose
RUN echo "\${FILENAME} \${animals}" > ./entrypoint.sh
RUN echo '${FILENAME} ${animals}' > ./entrypoint.sh
docker run -it -e animals="mouse,rat,kangaroo" image 
 类似资料:
  • 问题内容: 我有一个名为的python文件,该python文件需要两个命令行参数:,Dockerfile如下所示: 如何通过这两个命令行参数,并以?我试过了但是没用。 问题答案: 您不能按预期使用和,因为它们是的选项。 启动一个终端。 将Docker容器作为守护程序启动。 要在Dockerfile中设置环境变量,请使用命令。 请参阅Dockerfile参考。 另一种选择是通过以下方式传递环境变量:

  • 目前,我正在运行一个3节点的Rabbitmq集群,使用下面的docker-comple文件。 这是Dockerfile包含的用于启动容器并形成集群的脚本。 我需要将docker compose转换为docker run命令,并以集群格式启动所有三个容器。我面临的问题是,我需要一个单独的run命令,该命令可以用于逐个启动所有容器(仅按名称区分),并形成一个集群。我如何传递命令,如--link和一些特

  • 问题内容: 我可以在主机上运行docker命令吗?我安装在Docker容器中,现在可以以某种方式在主机上使用命令(在后台使用Docker容器的aws)吗? 我的情况是这样的:我在生产主机上有数据库备份。现在我有Jenkins cron作业,它将从db容器中获取sql文件,并将其放入服务器文件夹中。现在我还希望jenkins将此备份文件上传到AWS存储上,但是在主机上我没有安装aws,也不想在主机上

  • 我正在使用python SDK包从python运行docker。下面是我试图使用python包运行的docker命令:

  • 问题内容: 我想编写Docker容器管理的脚本,但是我发现很难将PS变量传递给Docker命令,特别是由于路径格式的差异。 以下行(*)和您可以在此处找到的赞都可以 使用,但是很不方便: 的确,PS 非常适合MSI安装程序,您需要查看弹出窗口并控制其可见性级别,以便了解无提示安装程序正在运行。取而代之的是,您不想每次运行控制台应用程序时都启动一个新窗口,尤其是在Docker中,在其中您与调用程序和

  • 我试图找到从命令行传递gradle任务参数的最佳方法。我有这个任务。我想从学生练习中解包解决方案,并将它们复制到项目中的正确位置,以突出它们。我这样称呼这个任务: 这是gradle任务: 你有什么建议来优化这个过程吗?