Docker for Windows上で、GitLabを動かしたい
はじめに
GitLab Docker images | GitLabの通りやるとDocker for Windows上でGitLabを動かせませんでした。
動かし方を閃くまでちょっと時間が掛ったためメモ。
名前付きボリュームを使えば動かせます
名前付きボリュームを使用する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がどういうものか理解するのに私は多大な時間を要したでしょう。