【问题标题】:Docker permissions development environment using a host mounted volume使用主机挂载卷的 Docker 权限开发环境
【发布时间】:2015-07-16 23:27:35
【问题描述】:

我正在使用 docker-compose 为一堆 symfony2 应用程序设置一个可移植的开发环境(尽管我想做的事情都不是专门针对 symfony 的)。我决定将本地计算机上的源文件作为数据卷公开,并在 docker 中包含所有其他依赖项。这样开发人员可以在本地文件系统上进行编辑。

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

我在这里阅读了有关此问题和一些可能的方法:

Changing permissions of added file to a Docker volume

但我不能完全梳理出我必须在我的 docker-compose.yml 文件中进行哪些更改,以便当我的 symphony 容器以 docker-compose up 开始时创建的任何文件拥有主机上用户的权限。

我发布文件以供参考,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"

【问题讨论】:

    标签: symfony docker docker-compose


    【解决方案1】:

    其中一个解决方案是在您的容器内部执行命令。对于过去遇到的同一问题,我尝试了多种解决方法。我发现在容器内执行命令对用户最友好。

    示例命令:docker-compose run CONTAINER_NAME php bin/console cache:clear。您可以使用makeant 或任何现代工具来保持命令简短。

    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 命令。

    【讨论】:

      猜你喜欢
      • 2017-06-30
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 2017-06-19
      • 2018-12-29
      • 2021-05-12
      • 1970-01-01
      相关资源
      最近更新 更多