Docker ComposeでGitLabをたてる for Mac

GitLabとは,自分の管理するサーバー上でGitHubのようなリポジトリ管理ツールを運用できるものです.
普通のGitでコマンドラインを操作したくない人,GitHubの有料プラン使いたくない人にはオススメです.


んで,サーバーは仮想サーバーでも良いんですが,お手軽にDockerでいきます.
GitLabはGitLab本体に加えてRedisとPostgreSQLが必要になりますが,Dockerでコンテナを1つずつ立ち上げてリンクさせるのは面倒なので,まとめてコンテナを立ち上げることができるDocker Composeを使います.


ここでは5秒でできると書かれていますが,Macだとできません.エラーがでます.
(Linuxでも5秒は無理だと思いますが…どんなネットワークでどんなスペックなんだという…)

やってみる

まずは上のサイトの通り,GitLab用のDocker Composeのymlファイルをダウンロードします.

$ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml

GitLab,Redis,PostgreSQLはDockerイメージが配布されているので,一から作る必要はありません.
そして,このymlファイルにGitLab,Redis,PostgreSQLを立ち上げてリンクさせて環境をつくる設定が書かれているわけです.

で,このまま

docker-compose up

と,コマンドを打つと,

ERROR: for postgresql  Cannot start service postgresql: Mounts denied:
.
OR
The path /srv/docker/gitlab/postgresql
is not shared from OS X and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> File Sharing.
See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.

ERROR: for redis  Cannot start service redis: Mounts denied:
The path /srv/docker/gitlab/redis
is not shared from OS X and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> File Sharing.
See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.

と,エラーが出ます.
これはDocker Composeのvolumesオプションのパスが共有できない領域を指しているためです.
(volumesオプションはDockerイメージ中のボリュームをマウントできるようにするものです)


なので,volumesのパスを書き換えてあげれば解決します.
/Users下のディレクトリを作って指定すればOKです.
ここでは/Users/(ユーザー名)/docker/gitlab というディレクトリを指定します.

services:
  redis:
    restart: always
    image: sameersbn/redis:latest
    command:
    - --loglevel warning
    volumes:
#    - /srv/docker/gitlab/redis:/var/lib/redis:Z    ←ここを↓に変える
     - /Users/(ユーザー名)/docker/gitlab/redis:/var/lib/redis:Z

  postgresql:
    restart: always
    image: sameersbn/postgresql:9.6-2
    volumes:
#    - /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z    ←ここを↓に変える
     - /Users/(ユーザー名)/docker/gitlab/postgresql:/var/lib/postgresql:Z
    environment:
    - DB_USER=gitlab
    - DB_PASS=password
    - DB_NAME=gitlabhq_production
    - DB_EXTENSION=pg_trgm

  gitlab:
    restart: always
    image: sameersbn/gitlab:8.16.5
    depends_on:
    - redis
    - postgresql
    ports:
    - "10080:80"
    - "10022:22"
    volumes:
#    - /srv/docker/gitlab/gitlab:/home/git/data:Z    ←ここを↓に変える
     - /Users/(ユーザー名)/docker/gitlab/gitlab:/home/git/data:Z
    environment:
    - DEBUG=false

    (省略)


これで

$ docker-compose up

で,立ち上がり,localhost:10080 にアクセスするとGitLabの画面が出ます.
(最初はパスワード再設定画面からで,初期アカウントはroot:5iveL!fe)

まとめ

GitLabをDockerでMacに立ち上げる手順を書きました.
英語なのとlocalhostなのはちょっとナンセンスなんですが,5秒で立ち上げるのでしょうがないです.(5秒で立ち上がってないですが!)


まぁ書いておいてなんですが,自分はBitBucket使います笑

シェアする

  • このエントリーをはてなブックマークに追加

フォローする