2020/5/15

docker gitlab - log

用 docker 快速啟動一個 gitlab image...

安裝docker..
  • apt install docker.io -- 結果是 19.03.6
  • 把 user 加到 docker 群組,解決permission denied 問題

開始create gitlab image..
docker pull gitlab/gitlab-ce
docekr run --detach --publish 8787:80 --name gitlab gitlab/gitlab-ce
因為是 detach,所以 run as daemon..
用 docker ps 來看..,只
$ docker ps
CONTAINER ID  IMAGE             COMMAND             CREATED        STATUS                            PORTS                                   NAMES
4d9e7128295e  gitlab/gitlab-ce  "/assets/wrapper"   8 seconds ago  Up 3 seconds (health: starting)   22/tcp, 443/tcp, 0.0.0.0:8787->80/tcp   gitlab
這時候,開啟 ip:8787 是不通的..

後來用
docker attach gitlab
進去後,會看到他在 run starting sequence 的 output,代表還沒啟動完畢...
大約等 4 min 之後,好像完成了. 其實在 1 min 的時候,http 頁面出現 502..
-- attach 一個啟動時是 daemonize 的 container,好像退不出來... 所以用 docker logs -f gitlab
之後用 any-host-ip:8787 舊可以access 到 gitlab login 畫面了。

第一個是 password 畫面,要你輸入 root 的 password,有最短限制,(所以用 full-name without '-')
之後的登入話面舊可以用 root 登入。

docker stop 停止後,再用 docker start 啟動的話,只要約 1min 舊可以正常 access..


以上是參考簡易教學 — 利用 Docker 架設 Gitlab 做的,文章沒有安裝 docker package 的部份,原來是安裝docker.io (ubuntu default package),後來因為不了解開機需要、時間,以為是 docker package 的問題。所以加入 download.docker.com repo,改裝 docker-ce 做的。

接下參考三秒教你用 Docker 安裝 GitLab,把 config. log. data 從 container image 中分離出來。


更新。
新的版本,第一次啟動已經不是 root password 了。
所以參考這一篇,在 container 中run bash,開啟 sql 設定 rooot password:
$ docker exec -it gitlab bash
root@1b10f96444f4:/# gitlab console -e production
Unknown command. Run `gitlab help` for a list of available commands.
root@1b10f96444f4:/# gitlab-rails console -e production
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
 GitLab:       14.8.2 (c7be43f6dd3) FOSS
 GitLab Shell: 13.23.2
 PostgreSQL:   12.7
------------------------------------------------------------[ booted in 20.47s ]
Loading production environment (Rails 6.1.4.6)
irb(main):001:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):002:0> user.password = 'charles'
=> "charles"
irb(main):003:0> user.password_confirmation = 'charles'
=> "charles"
irb(main):004:0> user.save
=> false
irb(main):005:0> user.password = 'charles123'
=> "charles123"
irb(main):006:0> user.password_confirmation = 'charles123'
=> "charles123"
irb(main):007:0> user.save
=> true
irb(main):008:0> exit
root@1b10f96444f4:/#exit
exit


其實用 deb 安裝完 gitlab-ce 後..
efault admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.
所以,應該去這裡(/etc/gitlab/initial_root_password) 看...


官方的應該是 .. gitlab docker,有啟動,hostname, password 的設置。
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 \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ee:latest
要先export GITLAB_HOME

另外,lfs 要enable 要修改 gitlab.rb

沒有留言:

張貼留言