Docker 挂载卷覆盖文件夹中的数据

托尼

我可能会错过一些非常明显的东西。Symfony 应用程序位于 /atom/src 的容器中。

docker@localhost:~/atom-docker$ sudo docker-compose exec atom ls /atom/src/
CONTRIBUTING.md  cache            favicon.ico      plugins
COPYRIGHT        composer.json    images           qubit_dev.php
Dockerfile       composer.lock    index.php        robots.txt
LICENSE          config           init             symfony
README.md        css              js               test
SECURITY.md      data             lib              vendor
apps             docker           log
build.xml        ead.dtd          phpunit.xml

尝试将名为 uploads 的卷装入文件夹时:

docker-compose.yml

version: "3.7"

services:

...

 atom:
    build:
      context: .
      dockerfile: Dockerfile-atom
    command: "fpm"
    ...
    volumes:
      - uploads:/atom/src/uploads
    restart: on-failure

 nginx:
    build:
      context: .
      dockerfile: Dockerfile-nginx
    ports:
      - "80:80"
    ...
    depends_on:
      - "atom"
    volumes:
      - uploads:/atom/src/uploads
    restart: on-failure


volumes:
  ...
  uploads:
    driver: "local"

...

上传文件夹没有安装在路径内,但 /atom/src 中的所有数据都被替换

docker@localhost:~/atom-docker$ sudo docker-compose exec atom ls /atom/src/
uploads

我的体积定义有什么问题?

科尔努斯

这不是一个真正的答案,但我认为它可以给你一些有用的反馈,我不可能在评论中写下这个。

我尝试了一个最小的可重复测试,它应该与您的情况相同:

version: "3.7"

services:

 atom:
    image: busybox
    command: tail -f /dev/random
    volumes:
      - uploads:/var/uploads

 nginx:
    image: busybox
    command: tail -f /dev/random
    volumes:
      - uploads:/var/uploads
    depends_on:
      - "atom"

volumes:
  uploads:
    driver: "local"

他们在这里:

$ docker-compose up -d
Creating network "t_default" with the default driver
Creating t_atom_1 ... done
Creating t_nginx_1 ... done

这是您的测试,它按预期工作:

$ docker-compose exec atom ls /var/
spool    uploads  www

使用的版本:

$ docker --version
Docker version 20.10.5, build 55c4c88
$ docker-compose --version
docker-compose version 1.27.4, build unknown

也就是说:我不认为问题出在docker-compose.yml. 也许在Dockerfiles?还是您的docker/docker-compose版本中的错误

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Docker / Windows Container:如何在Windows 2016上将主机文件夹作为数据卷挂载

Docker挂载到文件夹覆盖内容

为什么我挂载的Docker卷文件变成容器内的文件夹?

Docker绑定app文件夹中的elasticsearch卷

Docker Compose挂载Windows文件夹

为什么Docker容器无法在已挂载的文件夹中创建文件夹

docker-compose中的H2O-要挂载哪些文件夹以保留所有数据?

Docker:更改存储Docker卷的文件夹

为什么在挂载命名卷时docker-compose会创建一个空的主机文件夹?

通过保存映像中的数据在Docker中挂载卷

如何从卷映射的opt复制到docker中的图像opt文件夹?

Docker撰写,是否可以在已安装的卷中安装文件夹?

docker-compose类型:卷保留在外部文件夹中

Docker 卷安装问题到已安装的文件夹

如何使用Docker Compose卷安装Windows文件夹?

带有Windows本地文件夹的Docker命名卷

缺少源文件夹的Docker-Compose卷语法

Windows 10 上的 Docker 卷映射文件夹问题

docker-compose up 后清空卷文件夹

在 docker 中挂载本地文件夹会导致空目录

Docker中的Docker无法挂载卷

将单个文件从NFS docker卷挂载到容器中

如何将文件从docker中的卷挂载到容器?

在 docker 容器内挂载 VirtualBox 共享文件夹

Docker用户无法写入已挂载的文件夹

docker-compose不挂载测试结果文件夹

Docker容器无法挂载文件夹

Docker:如何在容器内挂载本地文件夹?

Docker卷绑定空卷或将文件转换为文件夹