首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker compose gitlab失败

Docker compose gitlab失败
EN

Stack Overflow用户
提问于 2017-12-13 17:21:25
回答 3查看 1.4K关注 0票数 1

我试着用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

就像我写的那样,我试着跑

代码语言:javascript
复制
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

EN

回答 3

Stack Overflow用户

发布于 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?您使用哪种主机操作系统?

票数 0
EN

Stack Overflow用户

发布于 2017-12-15 10:45:15

最后,我尝试更改docker-compose.yml中的内容,我不知道不起作用的确切原因。可能gitlab_omnibus中的设置不同

对于docker compose,我参考此docker-compose.yml

我删除了已有的docker镜像和容器,然后运行docker-compose。它工作得很好

票数 0
EN

Stack Overflow用户

发布于 2022-01-21 18:57:28

我也有同样的问题,运行这个解决了我的问题;因为我在SELinux上:

代码语言:javascript
复制
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进程有足够的权限在已挂载的卷中创建配置文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47789460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档