AWS EC2にDocker ComposeでGitlabを導入

#事前準備
[AWS EC2にDocker ComposeでJenkinsを導入](https://qiita.com/peanuts2013/items/6753c026b26db4d71130) の続きとなります。

#作業ディレクトリに移動
```bash
[ec2-user@ip-xxx-xx-xx-xxx container01]$ cd /home/docker/container01
```

#docker-compose.ymlを編集
今回は試すにあたり、[GitLab最小構成セットアップ（AWSに応用可）](https://qiita.com/Kento75/items/cd943fe5e9af98f00539) を参考にさせて頂きました。

- [AWS EC2にDockerでDocker Compose（1.29.2）を導入](https://qiita.com/peanuts2013/items/2ca576e855c880518e45) にも記載しましたが、EC2のインスタンスタイプは「t2-medium」が最低レベルです。
※複数コンテナ（Redmine, Jenkins, Gitlab）起動時、「t2-medium」でも何度かフリーズする事象が発生しています。
- Gitlabのベースイメージには「gitlab/gitlab-ce:latest」を指定
- 8000番ポートでアクセス
- これまでRedmine, Jenkinsまではports指定のポート番号はシングルクォートで括っていなかったのですが、今回はシングルクォートで括らないと※1のエラーになり、ちょっとハマりかけました。（最初からシングルクォートで括る書き方していたら躓く事もないのでしょうが・・・）

```yaml
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'  #シングルクォートで括らないと※1のエラー
      - '4022:22'  #シングルクォートで括らないと※1のエラー
    environment:
      - GITLAB_HOST=xx.xxx.xxx.xxx  #elastic IPAdress（各自環境に応じて設定）
      - GITLAB_PORT=80
      - GITLAB_SSH_PORT=4022
      - GITLAB_ROOT_PASSWORD=root  #root 初期パスワード
    volumes:
      - /var/gitlab/config:/etc/gitlab
      - /var/gitlab/logs:/var/log/gitlab
      - /var/gitlab/data:/var/opt/gitlab
volumes:
  mysql-data:
    name: mysql-redmine
```

#docker-composeコマンドを実行し、Dockerコンテナ（Gitlabのみ）をバックグラウンド起動
※1 以下は「docker-compose.yml」のports指定でポート番号をシングルクォートで括らずに実行した際のエラー（ご参考）

```bash
[ec2-user@ip-xxx-xx-xx-xxx container01]$ docker-compose up -d gitlab
Pulling gitlab (gitlab/gitlab-ce:latest)...
latest: Pulling from gitlab/gitlab-ce
345e3491a907: Pull complete
57671312ef6f: Pull complete
5e9250ddb7d0: Pull complete
7f815eeffff6: Pull complete
1a4fe87ef93e: Pull complete
eb13b56b9e19: Pull complete
2f19275b151e: Pull complete
84bbe8ae841a: Pull complete
0de204d1d029: Pull complete
Digest: sha256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Status: Downloaded newer image for gitlab/gitlab-ce:latest
Creating gitlab ... error

ERROR: for gitlab  Cannot create container for service gitlab: invalid port specification: "241342"

ERROR: for gitlab  Cannot create container for service gitlab: invalid port specification: "241342"
ERROR: Encountered errors while bringing up the project.
```

ports指定でポート番号を上記「docker-compose.yml」のようにシングルクォートで括り、再度Gitlabをバックグラウンド起動

```bash
[ec2-user@ip-xxx-xx-xx-xxx container01]$ docker-compose up -d gitlab
Creating gitlab ... done
```
#Gitlab向けにEC2のポートを開放
作成した「docker-compose.yml」ではポート8000番を指定したため、EC2の「セキュリティグループ」を表示してインバウンドルールに8000番ポートを追加する必要があります。
![EC2_Gitlab_8000番ポート開放.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32811/b12422f6-234d-cb23-b18b-51530750c52b.png)

#Gitlabにアクセス
ブラウザを起動し、 http://[Elastic IP アドレス]:8000/ にアクセスする。
以降、その後の画面遷移を参考としてキャプションを残しておきます。

- ① 初期パスワード変更画面
![Gitlab_初期パスワード変更画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32811/98a1f5d2-58ce-b849-050f-5db43e2d1d43.png)

- ② ログイン画面
![Gitlab_ログイン画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32811/d6a431f2-4faa-b2fe-dac6-c3c97904d9be.png)

- ③ Dashboard画面
![Gitlab_Dashboard画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/32811/e3297fc5-34bd-1d4e-dc49-979c304aa64b.png)