【问题标题】:Pass host machine's environment variables to dockerfile将主机的环境变量传递给 dockerfile
【发布时间】:2020-10-23 04:35:12
【问题描述】:

我的 Dockerfile 如下所示:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
EXPOSE 5000
ADD target/*.jar app.jar
ENV JAVA_OPTS=""

ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/.urandom -jar /app.jar"]

我想将几个环境变量(如 RDS_HOSTNAME)传递给 docker 容器。我应该如何修改这个文件来做到这一点?

【问题讨论】:

  • docker run -ti -e RDS_HOSTNAME=$RDS_HOSTNAME yourimage:latest

标签: amazon-web-services docker environment-variables dockerfile amazon-elastic-beanstalk


【解决方案1】:

你可以通过 ENV 期间

  • 构建时间
  • 运行时间

要在构建期间设置 ENV,您需要在 Dockerfile 中进行修改。

ARG RDS_HOSTNAME
ENV RDS_HOSTNAME="${RDS_HOSTNAME}"

并在构建期间传递RDS_HOSTNAME ENV。

docker build --build-arg RDS_HOSTNAME=$RDS_HOSTNAME -t my_image .

运行时间:

正如评论中提到的,你可以通过

docker run -ti -e RDS_HOSTNAME=$RDS_HOSTNAME yourimage:latest

使用第二种方法,如果有人访问,您的 Docker 容器将不会包含容器信息,但您每次运行容器时都需要传递,而首先您只需要在构建期间传递一次。

【讨论】:

    猜你喜欢
    • 2018-01-08
    • 2018-04-27
    • 1970-01-01
    • 2020-01-05
    • 2023-02-12
    • 2020-07-26
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多