symfony – 使用主机挂载卷的Docker权限开发环境

我正在使用docker-compose为一堆symfony2应用程序设置一个可移植的开发环境(虽然我想要做的只是symfony特有的).我决定将本地计算机上的源文件作为数据卷公开,其中包含docker中的所有其他依赖项.这样开发人员就可以在本地文件系统上进行编辑.

一切都很好,除了在运行应用程序后我的缓存和日志文件以及/ vendor目录中的composer创建的文件现在归root所有.

我已经在这里读到了这个问题和一些可能的方法

Changing permissions of added file to a Docker volume

但我不能完全弄清楚我在docker-compose.yml文件中要做出哪些更改,以便当我的symphony容器以docker-compose启动时,所有创建的文件都具有主机上用户的权限.

我发布文件以供参考,worker是PHP等等的直播:

source:
    image: symfony/worker-dev
    volumes:
    - $PWD:/var/www/app
mongodb:
    image: mongo:2.4
    ports:
    - "27017:27017"
    volumes_from:
    - source
worker:
    image: symfony/worker-dev
    ports:
    - "80:80"
    - mongodb
    volumes_from:
    - source
    volumes:
    - "tmp/:/var/log/Nginx"
最佳答案
其中一个解决方案是在容器内执行命令.我为过去遇到的同一问题尝试了多种解决方法.我发现在容器内执行命令是最友好的.

示例命令:docker-compose运行CONTAINER_NAME PHP bin / console cache:clear.您可以使用make,ant或任何现代工具来缩短命令.

Makefile示例:

all: | build run test

build: | docker-compose-build
run: | composer-install clear-cache

############## docker compose

docker-compose-build:
        docker-compose build

############## composer

composer-install:
        docker-compose run app composer install

composer-update:
        docker-compose run app composer update

############## cache

clear-cache:
        docker-compose run app PHP bin/console cache:clear

docker-set-permissions:
        docker-compose run app chown -R www-data:www-data var/logs
        docker-compose run app chown -R www-data:www-data var/cache

############## test

test:
        docker-compose run app PHP bin/PHPunit

或者,您可以引入包含环境变量的.env文件,然后使用其中一个变量在Docker容器中运行usermod命令.

相关文章

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Li...
1、什么是docker?答:docker是开源的应用容器引擎;开发人员把他们的应用及依赖包打包发布到容器当中。...
1、什么是namespace? 答:名称空间,作用隔离容器 2、namespace隔离有那些? 答:ipc:共享内存、消息队...
1、Docker能在非Linux平台(Windows+MacOS)上运行吗? 答:可以 2 、如何将一台宿主机的docker环境...
环境要求: IP hostname 192.168.1.1 node1 项目规划: 容器网段:172.16.10.0/24 NGINX:172.16.10.10...
文档上传地址:https://files.cnblogs.com/files/lin-strive/07-docker%E8%B7%A8%E4%B8%BB%E6%9C%BA%E7...