1. Y-Kanoh

    Posted

    Y-Kanoh
Changes in title
+GitLabを試してみるメモ
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,115 @@
+# 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すれば完了です。
+