この記事のGitLab構築はDockerを用いて行うこととする.
Dockerを用いることのメリットは,
1. 簡単に設定できる.
2. イメージごとバックアップすることで,他のマシンに移行する場合でも容易に可能である.(通常のGitLabのバックアップはバージョン依存など,少々面倒なためイメージごと移行できるほうが楽)
公式Dockerイメージを使えば,
サーバー構築(Apacheやnginx)の設定をしなくていいので,とても楽できます
設定ファイル
GitLabのDockerサービスを構築するため,Docker-composeを使用する.Docker-composeの設定ファイルは以下を使用する.
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ee:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com'
gitlab_rails['gitlab_shell_ssh_port'] = 2222
ports:
- '8080:80'
- '2222:22'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
4行目のDockerのイメージは,Docker Hubから自動的にダウンロードされる.
バージョン指定などがあれば,Tagをlatestから指定のバージョンに変更すると良い(以下リンクからタグを探す).
https://hub.docker.com/r/gitlab/gitlab-ee/tags?page=1&ordering=last_updated
構築方法(コマンド)
# export GITLAB_HOME=/srv/gitlab
# docker-compose up -d
Creating network "docker_default" with the default driver
Creating docker_gitlab_1 ... done
# docker-compose exec gitlab gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
GitLab: 14.0.5-ee (b044f06e4dd) EE
GitLab Shell: 13.19.0
PostgreSQL: 12.6
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.3.2)
irb(main):001:0>
ログイン用のRootパスワードを変更するために,上記のコンソール画面で以下の順で入力する.
[secret_pass]は設定したいパスワードを意味する.
user = User.where(id: 1).first
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
user.save!
rootパスワードを設定していないとログインできないので,必ず変更し設定する.
GitLabサーバへのアクセス方法
ブラウザを開いて,アドレスバーに”設定したexternal_url”を入力し,アクセスする.
ローカル環境の場合,アドレスバーに”localhost”と入力することで,アクセスできる.
初めてログインするときは,ユーザ名は[root]で,パスワードは上述した方法で設定したパスワードである.
502エラーへの対処
以下のようなエラーが発生する場合がある.
サーバが立ち上がっていないことが原因の場合が多いので,数分待つことで立ち上がる.数分待っても立ち上がらない場合は,再起動する.
メールサーバの設定
/etc/gitlab/gitlab.rbの最後に以下を追記する.
“my.email@gmail.com”と”my-gmail-password”は適宜設定する.
...
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-email@gmail.com"
gitlab_rails['smtp_password'] = "your-password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
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
# docker-compose exec gitlab gitlab-ctl reconfigure
注意点
Gmailを設定して場合,「重大なセキュリティ通知」のメールが届く場合がある.Googleアカウントで「安全性の低いアプリのアクセス」を有効にすると解決する.(自己責任で)
おそらくHTTPSになっていないのが原因ではないかと推測している.
最後に
内容に誤りや不具合,ご意見があればコメントを残して頂けるとありがたいです
コメント