DockerでGitLabを構築

## 環境
|OS - software|version|
|---|---|
|Mac|Mojave 10.14|
|Docker|18.06.1-ce|
|docker-compose|1.22.0|
|GitLab|Community Edition 11.4.0|

## docker-compose.ymlの取得
[GitHub](https://github.com/sameersbn/docker-gitlab)にGitLabのコンテナを起動できる`docker-compose.yml`があるので取得。

```bash
$ mydir=myGitlab; cd && mkdir -p ${mydir} && cd ${mydir}
$ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
```

## docker-compose up -d で起動
docker-compose.ymlと同じディレクトリで実行。

```bash
$ docker-compose up -d

Creating network "docker-gitlab_default" with the default driver
Pulling redis (sameersbn/redis:4.0.9-1)...
4.0.9-1: Pulling from sameersbn/redis
6b98dfc16071: Pull complete
:
:
:
Status: Downloaded newer image for sameersbn/gitlab:11.4.0
Creating docker-gitlab_redis_1      ... error
Creating docker-gitlab_postgresql_1 ...

ERROR: for docker-gitlab_redis_1  Cannot start service redis: b'Mounts denied: \r\nThe path /srv/docker/gitlab/redis\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared pathCreating docker-gitlab_postgresql_1 ... error

ERROR: for docker-gitlab_postgresql_1  Cannot start service postgresql: b'Mounts denied: \r\nThe path /srv/docker/gitlab/postgresql\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'

ERROR: for redis  Cannot start service redis: b'Mounts denied: \r\nThe path /srv/docker/gitlab/redis\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'

ERROR: for postgresql  Cannot start service postgresql: b'Mounts denied: \r\nThe path /srv/docker/gitlab/postgresql\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'
ERROR: Encountered errors while bringing up the project.
```

エラーが発生。
- `原因`：docker-compose.ymlに記載されているvolumesオプションのパスが共有できない領域を指している為。
- `解決方法`：volumesオプションのホスト側のパスを共有できる領域に変更する。

## エラー解消

```bash

$ # 差分確認用でバックアップ作成
$ cp docker-compose.yml docker-compose.yml.org

$ # sedで置換
$ sed -i -e 's/\/srv\/docker\/gitlab/\.\/srv\/docker\/gitlab/g' docker-compose.yml

$ # 差分確認
$ diff docker-compose.yml docker-compose.yml.org

--- docker-compose.yml	2018-10-29 17:14:00.000000000 +0900
+++ docker-compose.yml.org	2018-10-29 17:09:00.000000000 +0900
@@ -9,3 +9,3 @@
     volumes:
-    - ./srv/docker/gitlab/redis:/var/lib/redis:Z
+    - /srv/docker/gitlab/redis:/var/lib/redis:Z

@@ -15,3 +15,3 @@
     volumes:
-    - ./srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
+    - /srv/docker/gitlab/postgresql:/var/lib/postgresql:Z
     environment:
@@ -32,3 +32,3 @@
     volumes:
-    - ./srv/docker/gitlab/gitlab:/home/git/data:Z
+    - /srv/docker/gitlab/gitlab:/home/git/data:Z
     environment:
```

`/srv` → `./srv` になっていればOK。


## 再度 docker-compose up -d を実行

```bash
$ docker-compose up -d

Creating network "mygitlab_default" with the default driver
Creating mygitlab_redis_1      ... done
Creating mygitlab_postgresql_1 ... done
Creating mygitlab_gitlab_1     ... done
```
全て`done`になれば、OK。

## GitLabのrootユーザーパスワード変更
 - 1) ブラウザで`http://localhost:10080`にアクセス。
 - 2) rootユーザーのパスワードを変更する画面が出てくるので、変更。

## rootユーザー（管理者）でログイン
- Username or emailの入力欄 : `root`
- Passwordの入力欄 : `変更したパスワード`

`Welcome to GitLab` の画面が出てくればOK。