我有一个带有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/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容器,那可以工作?
直接通过command
运行此命令不起作用-可能是因为gitlab-rails console
尚未准备好在容器装满后立即运行。
我尝试使用Dockerfile
图像手动创建一个gitlab/gitlab-ce
,使用COPY
将上述脚本放入容器并CMD
。但是,正如预期的那样,此操作失败,因为gitlab-rails console
在启动时尚未准备好。需要一段时间
理想的情况是容器启动,安装Gitlab并完成所有设置工作; 然后自动设置root管理员密码。
答案 0 :(得分:0)
解决方案是将GITLAB_OMNIBUS_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
答案 1 :(得分:-1)
我尝试了 cbll 响应,但对我不起作用。
在 Docker Container Gitlab CE 中手动更改 root 密码。
-----等到控制台打开----
irb(main):001:0> user = User.find_by_username 'root'
irb(main):001:0> user.password = "newpassword"
irb(main):001:0> user.confirmation_password = "newpassword"
irb(main):001:0> user.save!