[Docker for Windows] GitLab & Admin 관리자 계정 설정법
Docker
1. 'GitLab-CE' Container 생성
개발할 때 이만한 게 또 있으랴..
GitLab
과 GitLab-RUNNER
(필수 아님!)까지 구성하여 GitLab-CI환경까지 완성하면 정말 개발환경구축 대만족!!
안타깝게도! GitLab-RUNNER
를 Docker for Windows로 구축하는 것을 실패하였지만.. (Windows 설치법 참조: https://forgiveall.tistory.com/553)
GitLab
은 Docker for Windows로 설치 성공!! (참조: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2280#note_154400745)
1. logs volume 생성
docker volume create gitlab-logs
2. data volume 생성
docker volume create gitlab-data
3. GitLab Container 생성
docker run --detach `
--name gitlab `
--restart always `
--hostname localhost `
--publish 443:443 --publish 80:80 --publish 4422:22 `
--volume C:\Docker-GitLab:/etc/gitlab `
--volume gitlab-logs:/var/log/gitlab `
--volume gitlab-data:/var/opt/gitlab `
gitlab/gitlab-ce
- 설명
Docker for Windows
의Linux Container Mode
에서 테스트되었으며, 위 명령을 그대로 긁어서 Powershell에 투척해서 사용하면 된다!!--detach
는-D
와 같은 옵션이다. run(실행)을 할 때 바로 Terminal이 Docker Container영역에서 벗어나도록 한다. (docker logs gitlab
명령으로 gitlab container에서 일어나는 일을 구경할 수 있다.)- '`' 이것은 개행하여도 명령어가 이어짐을 말한다.
--restart always
으로 설정하여 Docker가 재실행되어도 자동으로 해당 Container가 실행되도록 한다.--hostname localhost
으로... 또는--hostname 0.0.0.0
으로 설정하면 된다.--volume C:\Docker-GitLab:/etc/gitlab
특정경로에 폴더를 만들어 두고 이와같이 매칭시킨다.gitlab.rb
등 설정파일을 Host PC(Windows)에서 수정할 수 있도록 매칭하는 것이다. (수정시 Container를 restart!)--volume gitlab-logs:/var/log/gitlab
log를 gitlab-logs라는 Volume에 저장한다.--volume gitlab-data:/var/opt/gitlab
data를 gitlab-data라는 Volume에 저장한다.
4. GitLab 접속해보기
http://localhost:80/
2. GitLab Config파일 재설정 (설정이 필요할 시에만 참고)
C:\Docker-GitLab\gitlab.rb 수정
예제) 외부접속 설정
## GitLab URL ##! URL on which GitLab will be reachable. ##! For more details on configuring external_url see: ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab external_url 'http://192.168.0.18'
예제) Email알림을 설정 (아래는 Gmail 예시이며 Gmail에 특정권한에 대한 설정이 추가적으로 필요할 것이다.) (Email Vendor별 예제 참조: https://docs.gitlab.com/omnibus/settings/smtp.html)
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.gmail.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "IAMGMAILUSER" gitlab_rails['smtp_password'] = "MYMAILPASSWORD" gitlab_rails['smtp_domain'] = "smtp.gmail.com" gitlab_rails['smtp_authentication'] = "login" itlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false ###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'** ###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert', see http://api.rubyonrails.org/classes/ActionMailer/Base.html
재설정 방법A:
docker exec gitlab gitlab-ctl reconfigure
재설정 방법B: container를 다시시작한다. (또는 'docker stop gitlab', 'docker rm gitlab' 을 차례로 실행후 다시 '3'번의 Docker run 명령어를 실행한다.)
docker restart gitlab
3. Admin(root) Account - 관리자 계정 설정
관리자페이지(Admin Page)에는 관리자계정
이 아니면 접근할 수 없단다.
관리자계정이 뭔지도 모르고 GitLab-CE
를 설치하여 잘 사용해왔었는데.. 어느순간 급하게 필요해졌다..
그런데 대체 어떻게 관리자페이지에 들어갈 수 있는 것인지 난감했다.
인터넷 여러 글들을 뒤적여보니.. 계정ID가 admin
이라는 곳도 있고 root
라는 곳도 있고 .. 정보가 각기 다 다르다... 짜증... ㅋㅋ
그래서 나의 경험을 공유하고자 한다.
도움이 되길 바란다.
※ 나의 경험상 Admin 페이지에 들어가는 법은 이렇다.
- GitLab 버전은
12.2.3 (13598699b0a)
Docker for Windows
로 사용중이다.- 관리자계정 ID는
root
이다. - 초기 비밀번호는 뭔지 모르지만
gitlab-rails
를 통해 관리자계정의 암호를 Reset할 수 있었다. - 아래 과정을 순서대로
0. Reset admin account password - 관리자계정 암호 설정
터미널에서 gitlab-rails console production
을 입력하고 하나씩 따라해보자.
1. Command it on Terminal
이렇게 실행해보자! - 로딩하는 데 시간이 좀 걸릴 수 있다.
gitlab-rails console production
만약! Docker로 사용하고 있다면 docker container로 일단 들어가거서 실행
docker exec -it gitlab bash gitlab-rails console production
또는! Docker로 사용하고 있더라도 바로 때려버릴 수도 있다.
docker exec -it gitlab gitlab-rails console production
2. Find admin user
irb(main):001:0> u = User.where(id:1).first
3. Set password
irb(main):002:0> u.password = 'myAdminPassword'
4. Set password again
irb(main):003:0> u.password_confirmation = 'myAdminPassword'
5. Save changes
irb(main):004:0> u.save!
6. Exit
irb(main):005:0> exit
7. Go to GitLab Login
Page on Browser and Login with Admin (ID:root
/ PW:myAdminPassword
)
- '
root
'라는 계정으로 로그인할 수 있다.
8. Admin Page
로그인을 하면 바로 관리자페이지가 짜잔!
Reference - 참고
GitLab 설치
- docker로 gitlab 설치하기: https://lovemewithoutall.github.io/it/start-docker/
- Using Docker for Windows and not Docker Toolbox.: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/2280#note_154400745
Admin
- How to reset gitlab admin password: https://www.linuxhelp.com/how-to-reset-admin-password-in-gitlab
- (Video) How to reset admin password in Gitlab: https://www.youtube.com/watch?v=ZV_pQAC_XkQ
- gitlab 관리자 암호 재설정: https://www.lesstif.com/pages/viewpage.action?pageId=22642881
- Gitlba CI. Uploading large artifacts is failed.: https://gitlab.com/gitlab-org/gitlab-ce/issues/14841
- GitLab Admin Area: https://docs.gitlab.com/ee/user/admin_area/
- How do you access the gitlab-rails console? #1384: https://github.com/sameersbn/docker-gitlab/issues/1384