首页 > 解决方案 > 如何使用 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 文件中的变量将数据添加到卷?

标签: dockergradledocker-compose

解决方案


实现目标的一种方法是在...为清楚起见${PWD}/config/grade-docker.properties的主机上创建文件。${PWD}/docker-compose.yml${PWD}

然后,您现有的volumes属性将在运行时将此文件映射到容器中,并将其放置在容器的/config.


推荐阅读