【问题标题】:docker - composer install and permissons in docker volumes - mkdir failsdocker - 在 docker 卷中编写安装和权限 - mkdir 失败
【发布时间】:2019-08-12 16:37:23
【问题描述】:

我有 3 个 docker 容器 Apache、php 和一个 temp_php_build 容器。 temp_php_build 容器由
docker-compose build temp_php_build创建。
它执行composer install 并且应该在共享卷中创建一个文件夹。
稍后应将此共享卷复制到 Apache 和 PHP 容器。
一切都在 Jenkins 上运行,挂载的卷归 jenkins:jenkins 所有。

当 temp_php_build 容器执行 composer 安装时,由于父文件夹不可被组或世界写入,因此挂载卷中的某些目录创建失败。

我尝试将 uid:gid 1000:1000 分配给共享文件夹,该文件夹暂时有效,但由于工作区在每次 Jenkins 构建时都会被抽出,因此会重新分配权限。

如何正确解决 Docker 权限问题?

【问题讨论】:

    标签: docker jenkins permissions docker-compose


    【解决方案1】:

    好的,我通过让 jenkins 省略 chown 并启动 php-build 容器并从正在运行的容器运行 composer install 来解决此问题。

    sudo chown -R 1000:1000 /srv/www/htdocs/webapp
    sudo chmod -R 775 /srv/www/htdocs/webapp
    cd /srv/www/htdocs/webapp
    docker-compose up -d --build php-build-container
    docker exec php-build-container composer install
    

    之后我确保权限已重置,以便 docker save 再次工作,并且工作区可以被下一个 jenkins 构建抽出

    【讨论】:

      猜你喜欢
      • 2018-04-22
      • 2016-03-25
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 2019-05-08
      • 2018-10-23
      相关资源
      最近更新 更多