amazon-web-services - 将主机的环境变量传递给 dockerfile
问题描述
我的 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 容器。我应该如何修改这个文件来做到这一点?
解决方案
您可以在期间通过 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 容器将不会包含容器信息,但是您每次运行容器时都需要传递,而首先您只需要在构建期间传递一次。
推荐阅读
- firebase - Flutter Firebase 存储实例显示未初始化
- firebase - Flutter - 用户登录 Firebase 时未重建 FutureBuilder?
- r - 在 R markdown 中包含绘图但不包含控制台
- c - Linux:为什么 FIFO 调度程序在 1 核 CPU 机器上不能按预期工作?
- java - 如何在 ArrayList 中找到第二大整数
- r - R中的敏感性和特异性
- powerbi - Power BI 桌面/部分负载
- c++ - 带有 min 和 max 元素的向量下标超出范围
- bootstrap-4 - 引导类不起作用 - min-vh-100,阴影
- sql - HANA 中具有 HIERARCHY 功能的 BOM 爆炸