2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Windows10にDocker ComposeでGitlabを導入

Last updated at Posted at 2021-07-01

#事前準備
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/ にアクセスする。
今回はちょっとハマりどころがあり、少し躓きましたが無事解消できてひと安心。
(と思いきや、最後の問題③が発生してどっぷりハマりました・・・)
Gitlab_ログイン画面 for Windows.PNG

#rootユーザの初回パスワード変更
私の環境では、何をどうしても表示されませんでした。

#GitLab Dashboard画面
ログイン画面では、以下入力して「Sign in」ボタンを押下。

  • Username or email:root
  • Password:password(docker-compose.ymlに記載したパスワード)

今度こそ、無事Dashboard画面まで遷移できたので完了。
Gitlab_Dashboard画面 for Windows.PNG


以下はハマった事象を参考に残しておきたいと思います。

#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をキャプションのように変更しましたが、あくまで私の環境でのご参考まで)
Docker Desktop 設定変更画面.PNG

#問題③
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の設定を見直した方が早いと判断して対処しました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?