Docker compose 卷:执行 docker-compose up 时将文件夹从 docker 容器复制到主机

mad*_*adx 5 yaml docker docker-compose docker-volume

我有这个简单的docker-compose.yaml(图片来自danielemaddaluno/self-service-password):

version: "3"
services:
  ltb:
      image: danielemaddaluno/self-service-password
      ports:
        - 8080:80
      volumes:
        - ./conf:/var/www/html/conf/
Run Code Online (Sandbox Code Playgroud)

目前的行为是:

  • 如果./conf不存在,则在主机上创建
  • 并且空内容被安装在容器中/var/www/html/conf/

我想要的行为是:

  • 如果./conf不存在,则在主机上创建
  • 内容首先从容器加载/var/www/html/conf/(到新创建的./conf主机文件夹)

这可以用 docker compose 实现吗?

Ber*_*rtC 0

我的猜测是这是不可能的。原因是 docker-compose 将容器中的文件夹映射到主机文件夹并覆盖了镜像中原来的内容。

如果您想在主机上拥有默认的conf文件,更好的方法是首先省略卷映射,然后执行到容器中,复制该conf文件并在主机conf文件夹中创建它。

从那时起,conf 文件就可用了。

此外,您还将“./conf”(不带尾部斜杠)映射到容器中的文件夹(带尾部斜杠)。不知道这是否有效,我会在卷定义中的主机和容器之间保持试验斜线同步。


归档时间:

查看次数:

6280 次

最近记录:

4 年,6 月 前