docker-docker卷中的composer安装和权限-mkdir失败

时间:2019-03-21 18:24:41

标签: docker jenkins permissions docker-compose

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

enter image description here

当temp_php_build容器执行其composer安装时,由于父文件夹不能被组或世界写入,因此无法创建已安装卷中的某些目录。

enter image description here

我试图将uid:gid 1000:1000分配给共享文件夹,该文件夹可以临时工作,但是由于在每个Jenkins构建中都会浪费工作空间,因此会重新分配权限。

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

1 个答案:

答案 0 :(得分:0)

好吧,我通过让詹金斯(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构建淘汰工作区