#事前準備
Windows10にDocker ComposeでJenkinsを導入 の続きとなります。
#作業ディレクトリに移動
Windows PowerShellを管理者権限にて起動※する。
Windows10にDocker ComposeでJenkinsを導入 を参照
PS C:\WINDOWS\system32> cd C:\docker\my_prot01\
PS C:\docker\my_prot01>
#docker-compose.ymlを編集【成功編】
(2021/07/03 追記)
GitLabログイン画面までいけたので安心していたら、rootユーザでログインできずにどっぷりハマりました・・・。
(なぜ初回アクセス時にrootユーザのパスワード変更画面が表示されないのか分からず)
version: '3.9'
services:
#前回の続きのため、Redmine, MySQL, Jenkins部分のコンテナ設定は割愛
gitlab:
image: gitlab/gitlab-ce:latest
restart: always
container_name: gitlab
hostname: localhost
ports:
- '8000:80'
- '4022:22'
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['gitlab_port'] = 80
gitlab_rails['gitlab_shell_ssh_port'] = 4022
gitlab_rails['initial_root_password'] = "password"
gitlab_rails['smtp_enable'] = true ☆
gitlab_rails['smtp_address'] = "smtp.gmail.com" ☆
gitlab_rails['smtp_port'] = 587 ☆
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' ☆
gitlab_rails['smtp_user_name'] = "root@gmail.com" ☆
gitlab_rails['smtp_password'] = "password" ☆
postgresql['shared_buffers'] = "512MB" ☆
volumes:
- 'gitlab-config:/etc/gitlab' ★
- ../my_prot01/gitlab/logs:/var/log/gitlab
- 'gitlab-data:/var/opt/gitlab' ★
volumes:
gitlab-config:
external: true
gitlab-data:
external: true
#docker-composeコマンドを実行し、Dockerコンテナ(Gitlabのみ)をバックグラウンド起動【成功編】
- 後半のハマった事象に記載している問題①のvolume作成を先に作成しておきます。
- docker-composeコマンドにて、gitlabコンテナを生成します。
何回も失敗しているので、ログは素っ気ない感じですね。(起動時のログイメージは、最後のハマった事象以降を参照頂ければと)
PS C:\docker\my_prot01> docker-compose up -d gitlab
Creating gitlab ... done
#コンテナの状態を確認【成功編】
実行直後はStateは「Up (health: starting)」となりますが、正常に起動できると「Up (healthy)」に変わります。
環境スペックによるのでしょうが、私の環境だと「Up (healdhy)」に変わるまで1~2分程度かかります。
PS C:\docker\my_prot01> docker-compose ps
Name Command State Ports
---------------------------------------------------------------------------------------------------------------------------------------------
gitlab /assets/wrapper Up (healthy) 0.0.0.0:4022->22/tcp,:::4022->22/tcp, 443/tcp, 0.0.0.0:8000->80/tcp,:::8000->80/tcp
jenkins /sbin/tini -- /usr/local/b ... Up 50000/tcp, 0.0.0.0:3001->8080/tcp,:::3001->8080/tcp
mysql docker-entrypoint.sh mysql ... Up 3306/tcp, 33060/tcp
redmine /docker-entrypoint.sh pass ... Up 0.0.0.0:3000->3000/tcp,:::3000->3000/tcp
#Gitlabにアクセス
ブラウザを起動し、 http://localhost:8000/ にアクセスする。
今回はちょっとハマりどころがあり、少し躓きましたが無事解消できてひと安心。
(と思いきや、最後の問題③が発生してどっぷりハマりました・・・)
#rootユーザの初回パスワード変更
私の環境では、何をどうしても表示されませんでした。
#GitLab Dashboard画面
ログイン画面では、以下入力して「Sign in」ボタンを押下。
- Username or email:root
- Password:password(docker-compose.ymlに記載したパスワード)
今度こそ、無事Dashboard画面まで遷移できたので完了。
以下はハマった事象を参考に残しておきたいと思います。
#docker-compose.ymlを編集【失敗編】
version: '3.9'
services:
#前回の続きのため、Redmine, MySQL, Jenkins部分のコンテナ設定は割愛
gitlab:
image: gitlab/gitlab-ce:latest
restart: always
container_name: gitlab
hostname: gitlab.example.com
ports:
- '8000:80'
- '4022:22'
environment:
- GITLAB_HOST=localhost
- GITLAB_PORT=80
- GITLAB_SSH_PORT=4022
- GITLAB_ROOT_PASSWORD=root
volumes:
- ../my_prot01/gitlab/config:/etc/gitlab ★
- ../my_prot01/gitlab/logs:/var/log/gitlab
- ../my_prot01/gitlab/data:/var/opt/gitlab ★
#docker-composeコマンドを実行し、Dockerコンテナ(Gitlabのみ)をバックグラウンド起動【失敗編】
PS C:\docker\my_prot01> docker-compose up -d gitlab
Docker Compose is now in the Docker CLI, try `docker compose up`
Pulling gitlab (gitlab/gitlab-ce:latest)...
latest: Pulling from gitlab/gitlab-ce
c549ccf8d472: Pull complete
41ae71c8423a: Pull complete
c5d53ba99c3d: Pull complete
069a53bf4f3e: Pull complete
025b4ff80869: Pull complete
ea5ed1ec865a: Pull complete
259bd22bd080: Pull complete
0e9c412940b1: Pull complete
Digest: sha256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Status: Downloaded newer image for gitlab/gitlab-ce:latest
Creating gitlab ... done
#コンテナの状態を確認【失敗編】
実行直後は以下のようにgitlabのSTATUSが「Up 8 seconds (health: starting)」となっているため、(health: starting)が消えるまで待ちます。
※コンテナ起動自体はうまくいったように見えますが、いつまでたっても起動しません。
PS C:\docker\my_prot01> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e366d15a9757 gitlab/gitlab-ce:latest "/assets/wrapper" 2 minutes ago Up 8 seconds (health: starting) 443/tcp, 0.0.0.0:4022->22/tcp, :::4022->22/tcp, 0.0.0.0:8000->80/tcp, :::8000->80/tcp gitlab
ccc16bd3cf6e redmine:passenger "/docker-entrypoint.…" 3 hours ago Up 3 hours 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp redmine
aa2c4a3d994e jenkins/jenkins:latest "/sbin/tini -- /usr/…" 3 hours ago Up 3 hours 50000/tcp, 0.0.0.0:3001->8080/tcp, :::3001->8080/tcp jenkins
eba338afcbea mysql:5.7 "docker-entrypoint.s…" 3 hours ago Up 3 hours 3306/tcp, 33060/tcp mysql
#問題①
※1のログを参照してみると、「docker-compose.ymlを編集【失敗編】」の記述だと★部分が影響したせいか、以下permissionsに関するエラーが発生していました。
(1分置きに大量にログが出力され続けていました・・・)
【対応内容】
① volumeを作成しておきます。
PS C:\docker\my_prot01> docker volume create gitlab-data
gitlab-data
PS C:\docker\my_prot01> docker volume create gitlab-config
gitlab-config
PS C:\docker\my_prot01> docker volume ls
DRIVER VOLUME NAME
local gitlab-config
local gitlab-data
② 「docker-compose.ymlを編集【成功編】」の記述に変更し、再度「docker-compose up -d gitlab」を実行。
問題解決にあたり、以下のサイトを参考にさせて頂きました。
Docker for Windows に GitLab CE をインストールする
Failed asserting that mode permissions on "/var/opt/gitlab/.ssh" is 0700
---- Begin output of set -x && [ "$(stat --printf='%04a' $(readlink -f /var/opt/gitlab/.ssh) | grep -o '....$')" = '0700' ] ----
※1 参照したログファイル
../my_prot01/gitlab/logs/reconfigure/[10桁数字].log
#問題②
dockerのコンテナが停止(dockerコマンドを受け付けない状態)してしまう。
【対応内容】
AWS EC2にDockerでDocker Compose(1.29.2)を導入 の前提条件に記載していますが、GitLabの動作環境はある程度のスペックが必要となる事を思い出し、Docker Desktopの設定を変更。
(CPU、Memory、Swapをキャプションのように変更しましたが、あくまで私の環境でのご参考まで)
#問題③
GitLabログイン画面は表示されるが、rootユーザでログインできない。
AWS EC2にDocker ComposeでGitlabを導入 時には出てきた、初回rootユーザのパスワード変更が画面が表示されない・・・。
【対応内容】
WindowsでGitLabを構築(Docker) を参考にさせて頂き、docker-compose.ymlを編集【成功編】の☆部分を修正。
【試行錯誤メモ】
Windows10でDockerコンテナにGit Bashでアクセス でも書きましたが、Dockerのgitlabコンテナに直接アクセスしてRailsConsoleからrootユーザ追加してもダメでしたね。
e-mailをresendしてください的なメッセージを見て、docker-compose.ymlの設定を見直した方が早いと判断して対処しました。