docker - 如何使用 docker-compose.yml 中的值将文件添加到 Docker 映像中的卷?
问题描述
我有这个 .env 文件:
admin=admin
password=adminsPassword
stackName=integration-demo
docker-compose.yml 文件中使用的值,如下所示:
myService:
build:
context: .
dockerfile: myService.Dockerfile
args:
- instance=${stackName}.local
- admin=${admin}
- password=${password}
volumes:
- ./config:/config
我想将它们添加到 Docker 撰写文件中,如下所示:
FROM openjdk:8-jdk-alpine
ARG docker_properties_file=Username=$admin\nPassword=$password\nHost=$instance
RUN $docker_proprties_file >> config/gradle-docker.properties
这样我就有一个 gradle-docker.properties 文件,如下所示:
username=admin
password=adminsPassword
host=integration.demo.local
在 /config 目录中。
但是,没有写入 gradle-docker.properties 文件。
如何使用 docker-compose.yml 文件中的变量将数据添加到卷?
解决方案
实现目标的一种方法是在...为清楚起见${PWD}/config/grade-docker.properties
的主机上创建文件。${PWD}/docker-compose.yml
${PWD}
然后,您现有的volumes
属性将在运行时将此文件映射到容器中,并将其放置在容器的/config
.
推荐阅读
- javascript - querySelectorAll 获得的项目少于页面上的项目
- html - 如何实现 Angular 2+ 步骤进度条
- python - 在 pandas 数据框中拆垛并绘制结果
- java - Java8 Stream批处理以避免OutOfMemory
- python - 从 PySpark 数据帧(结构化流数据)中的嵌套结构中分解任意数量的 JSON 字段
- python - 使用 Cityscapes 进行分割故障训练 Deeplab
- timestamp - 在邮递员请求正文中发送当前时间戳
- java - JComboBox 未由数据库 JDBC 信息填充 - Java
- java - 根据夏令时转换存储在数据库中的时间
- node.js - 来自文件系统的视频流