Docker for Windows上で、GitLabを動かしたい

はじめに

GitLab Docker images | GitLabの通りやるとDocker for Windows上でGitLabを動かせませんでした。
動かし方を閃くまでちょっと時間が掛ったためメモ。

環境

  • WIndows 10 Pro 1809
  • Docker for Windows(Docker Desktop Community 2.0.0.3)
  • GitlLab CE 11.10.1-ce.0

名前付きボリュームを使えば動かせます

名前付きボリュームを使用するdocker-compose.ymlの例を以下に示します。

version: "2.2"
services:
  gitlab:
    image: 'gitlab/gitlab-ce:11.10.1-ce.0'
    restart: always
    hostname: 'localhost'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost'
    ports:
      - '10080:80'
      - '10443:443'
      - '10022:22'
    volumes:
      - 'gitlab-log:/var/log/gitlab'
      - 'gitlab-config:/etc/gitlab'
      - 'gitlab-data:/var/opt/gitlab'
volumes:
  gitlab-log:
  gitlab-config:
  gitlab-data:

GitLab Docker images | GitLabのdocker-compose.ymlはホストのディレクトリをマウントしているため、Windowsがホストだと、パーミッション設定で失敗して起動してこないのです。

名前付きボリュームの中を見るのはちょっと面倒

以下のいずれかの方法を使用することになります。

ホストLinux(ハイパーバイザ型の軽量Linux)のルートディレクトリをマウントする

Dockerでデータボリュームを使ってみる|crz33の「管理ボリュームはどこにあるのか?」に具体的な方法が記載されています。

余談ですがGit for Windowsに同梱のGit BASHではうまくできませんでした。PowerShellを使いましょう。

見たいボリュームを1個1個マウントする

例えば、以下のようになります。

docker run --name mount_test -v practiceofgitlab_gitlab-log:/gitlab_gitlab-log -it alpine:latest sh

Gitlabの使い方を知るのにはいい書籍がある

GitLab実践ガイド impress top gearシリーズがお勧めです。
この書籍がなかったら、GitlLabがどういうものか理解するのに私は多大な時間を要したでしょう。
GitLab実践ガイド impress top gearシリーズ

さいごに

Docker for Windowsを使っているとこういうちょっとしたことで苦労しがちです。
しかしながら、Windowsへの愛ゆえこれからもDocker for Windowsでどうにかできるときは頑張っていきたい所存。