1. Y-Kanoh

    No comment

    Y-Kanoh
Changes in tags
Changes in body
Source | HTML | Preview
@@ -1,115 +1,123 @@
# DockerでGitLabを試してみる
GitLabをDockerで動かしてみたときのメモ。
一応、データは永続化のためVolumeに保存します。
なお、環境はWindowsでDocker Toolboxを使用しています。
# docker-compose.yml
データ永続化のため、一部Volumeに切り出します。
```docker-compose.yml
version: '2'
# volume定義
volumes:
config-vol:
driver: 'local'
logs-vol:
driver: 'local'
data-vol:
driver: 'local'
# service定義
services:
gitlab:
image: gitlab/gitlab-ce:latest
volumes:
# ${volumesに定義したkey}:{マウントパス}
- config-vol:/etc/gitlab
- logs-vol:/var/log/gitlab
- data-vol:/var/opt/gitlab
ports:
- "443:443"
- "80:80"
- "2222:22"
restart: always
```
ポートは、エラーが出たので、22ポートのみ2222ポートに変更。
(おそらく、Docker用仮想マシンとのsshですでに使っていることが原因かと思いますが、深堀はしていない...)
docker-compose.ymlファイルが用意できたら、下記コマンドでサービス開始。
```bash
docker-compose up -d
```
ちょっと時間がかかるので、しばらく待つ。
# GitLabへアクセス
Dockerが起動している仮想マシンへアクセスすると、GitLabの画面が表示されます。
まだ起動が終わってない場合は、500エラーが表示されますので、しばらく待機。
(Volumeの設定がミスっている場合などでも500エラーは出ます。)
設定などは、GitLabについてまとめているサイトを参考に。
# ssh設定変更
Windowsなのでgit bashを実行し、作業します。
docker-compose.ymlで、sshをDockerが起動しているマシンの2222ポートで行うように設定したため、sshの設定ファイル`~/.ssh/config`を下記の通りに変更します。
```
Host 192.168.99.100
HostName 192.168.99.100
User git
Port 2222
IdentityFile ~/.ssh/id_rsa.pub
TCPKeepAlive yes
IdentitiesOnly yes
```
`Host`と`HostName`にはDockerが起動しているマシンのIPを入れます。
`IdentityFile`には、このあと作成するssh公開キーのパスを指定します。
# リモートリポジトリの登録
Git管理下のディレクトリにて、リモートリポジトリとして作成したGitLabコンテナを登録します。
GitLabにて、プロジェクトを作成し、画面に表示されるURIをコピーします。
手元ではこんな感じ。
`git@2ca1d50bd3da:Y-Kanoh/{プロジェクト名}.git`
これでは、ホスト名のところにコンテナのハッシュ値が指定されているので、ハッシュ値をDockerが起動しているマシンのIPに変更します。
`git@192.168.99.100:Y-Kanoh/{プロジェクト名}.git`
この編集したURIをもとに、リモートリポジトリを登録します。
```bash
git remote add origin git@192.168.99.100:Y-Kanoh/{プロジェクト名}.git
```
# sshキーの登録
ここで詰まりました。
sshキーを作成し、登録します。
何回キーを登録しなおしてもうまくいかなかったのですが、下記サイトを参考にして、ようやく接続できました。
参考:[git公開鍵の追加方法](https://qiita.com/u1and0/items/b9ca6496045b961f097f)
接続確認コマンドは以下の通りです。
(ssh用の22ポートを2222ポートに変更している点に注意)
`Permission denied (publickey).`などが表示されず、`Welcome to GitLab`と言われれば成功です。
```bash
ssh -T 192.168.99.100 -p 2222
```
あとはGit管理下のソースをpushすれば完了です。
+
+# 追記
+上記、sshキーを発行するときに、以下のコマンドを忘れるのでメモ。
+
+```bash
+$ eval $(ssh-agent -s)
+$ ssh-add ~/.ssh/id_rsa
+```