我试着用docker compose安装Gitlab。我设置了docker-compose。
gitlab: image: 'gitlab/gitlab-ce:latest' volumes: - '/srv/docker/gitlab/data:/var/opt/gitlab' - '/srv/docker/gitlab/config:/etc/gitlab' - '/srv/docker/gitlab/logs:/var/log/gitlab' ports: - "10080:10080" - "10443:443" - "10022:22" restart: always hostname: '1.1.1.1' dns: - xx.xx.xx.xx environment: GITLAB_OMNIBUS_CONFIG: | gitlab_rails['gravatar_enabled'] = false gitlab_rails['time_zone'] = 'Asia/Tokyo'
当我运行docker-compose up时,它失败了
gitlab_1 | If this container fails to start due to permission problems try to fix it by executing: gitlab_1 | gitlab_1 | docker exec -it gitlab update-permissions gitlab_1 | docker restart gitlab gitlab_1 | gitlab_1 | Installing gitlab.rb config... gitlab_1 | cp: cannot create regular file '/etc/gitlab/gitlab.rb': Permission denied gitlab_gitlab_1 exited with code 1
就像我写的那样,我试着跑
docker exec -it gitlab update-permissions但是错误是Error response from daemon: No such container: gitlab说的
有人能帮上忙吗?
只需信息docker ps
结果:
创建容器ID镜像命令
xxxxxxx gitlab/gitlab-ce: 24小时前最新的"/assets/wrapper“
和权限文件
ls -la /etc/gitlab/gitlab.rb
-rw-。1根根目录0 12 17:00 /etc/gitlab/gitlab.rb
发布于 2017-12-13 17:27:14
容器似乎没有权限在您挂载的卷下创建文件:
/srv/docker/gitlab/data/srv/docker/gitlab/config/srv/docker/gitlab/logs文件权限显示只有root才能读写gitlab.rb。我只是检查了一下--我的容器使用了相同的权限。
所以这可能是你的Docker主机的问题。它会以某种方式阻止您创建/写入这些文件。也许文件系统是只读装载的,或者主机卷文件夹的权限不允许这样做。SELinux或App Armour也可能是一个问题!
我建议删除卷中的所有文件,并将3个文件夹的权限设置为777。在它启动之后,您将看到需要哪些用户/组it,您可以将其收紧。
你用AppArmour吗,SELinux?您使用哪种主机操作系统?
发布于 2017-12-15 10:45:15
最后,我尝试更改docker-compose.yml中的内容,我不知道不起作用的确切原因。可能gitlab_omnibus中的设置不同
对于docker compose,我参考此docker-compose.yml
我删除了已有的docker镜像和容器,然后运行docker-compose。它工作得很好
发布于 2022-01-21 18:57:28
我也有同样的问题,运行这个解决了我的问题;因为我在SELinux上:
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab:Z \
--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
--shm-size 256m \
gitlab/gitlab-ee:latest这将确保Docker进程有足够的权限在已挂载的卷中创建配置文件。
https://stackoverflow.com/questions/47789460
复制相似问题