我有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权限问题?
答案 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构建淘汰工作区