我有图像A(some_laravel_project)和图像B(laravel_module)。图片A是一个Laravel项目,看起来像这样。
如上面的列表所示,我想使用docker-compose在映像A中共享映像B中的一个卷。我想访问容器B中的文件。
这是我尝试过的docker-compose,在gitlab ci中创建这些映像时未收到任何错误。我检查了一下,并将卷及其文件存储在module_user:latest容器中。
我认为将卷安装到some_laravel_project时出错。
version: '3'
services:
laravel:
image: some_laravel_project
working_dir: /var/www
volumes:
- /var/www/storage
- userdata:/var/www/Modules
user:
image: laravel_module
volumes:
- userdata:/user
volumes:
userdata:
webroot:
答案 0 :(得分:1)
您在docker compose中用于跨容器共享卷的方法是正确的。您可以在docker-compose volumes
下找到此文档如果要在多个服务之间重用卷,请定义一个 顶级卷密钥中的已命名卷。将命名卷与 服务
在这种情况下,/var/www/Modules
中的目录laravel
与/user
服务中的user
中的目录具有相同的内容。您可以通过进入容器并通过运行检查每个方向性来进行验证;
docker exec -it <container-name> bash