如何通过docker compose启动gitlab ce容器,并且已经设置了管理员凭据?
我有一个带有Gitlab CE容器的如何通过docker compose启动gitlab ce容器,并且已经设置了管理员凭据?,docker,docker-compose,gitlab,Docker,Docker Compose,Gitlab,我有一个带有Gitlab CE容器的docker compose.yml文件: services: // other services.. gitlab: image: 'gitlab/gitlab-ce' restart: always ports: - '80:80' - '443:443' - '22:22' - "127.0.0.1:8081:80" volumes: - '/etc/gi
docker compose.yml
文件:
services:
// other services..
gitlab:
image: 'gitlab/gitlab-ce'
restart: always
ports:
- '80:80'
- '443:443'
- '22:22'
- "127.0.0.1:8081:80"
volumes:
- '/etc/gitlab'
- '/var/log/gitlab'
- '/var/opt/gitlab'
networks:
- backend
启动时,这要求您打开浏览器,转到(本例中)localhost:8081
并手动输入密码
我希望这个过程是自动化的(用于本地开发和测试目的)
Gitlab自己的答案:
gitlab-rails console production
user = User.where(id: 1).first
user.password = 'somethingsomething'
user.password_confirmation = 'somethingsomething'
user.save!
exit
如果我在一切都设置好之后ssh到Gitlab CE容器中(需要几分钟),这一点就可以实现
通过命令直接运行此命令不起作用-可能是因为gitlab rails控制台在容器启动时还没有准备好
我尝试使用gitlab/gitlab ce
图像手动创建Dockerfile
,使用COPY
将上述脚本放入容器中并CMD
将其保存。然而,正如预测的那样,这会失败,因为启动时gitlab rails控制台还没有准备好。这需要一段时间
理想的场景是容器启动、安装Gitlab并完成所有的安装工作;然后自动设置根管理员密码 解决方案是将GITLAB\u OMNIBUS\u CONFIG
设置为环境变量
这项工作:
services:
// other services..
gitlab:
image: 'gitlab/gitlab-ce'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['initial_root_password'] = 'adminadmin'
ports:
- '80:80'
- '443:443'
- '22:22'
- "127.0.0.1:8081:80"
volumes:
- '/etc/gitlab'
- '/var/log/gitlab'
- '/var/opt/gitlab'
networks:
- backend
启动服务时,将确认:
gitlab_1 | == Seed from /opt/gitlab/embedded/service/gitlab-rails/db/fixtures/production/002_admin.rb
gitlab_1 | Administrator account created:
gitlab_1 |
gitlab_1 | login: root
gitlab_1 | password: adminadmin