Edited at

GitLabを試してみるメモ

More than 1 year has passed since last update.


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ファイルが用意できたら、下記コマンドでサービス開始。

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

HostHostNameにはDockerが起動しているマシンのIPを入れます。

IdentityFileには、このあと作成するssh公開キーのパスを指定します。


リモートリポジトリの登録

Git管理下のディレクトリにて、リモートリポジトリとして作成したGitLabコンテナを登録します。

GitLabにて、プロジェクトを作成し、画面に表示されるURIをコピーします。

手元ではこんな感じ。

git@2ca1d50bd3da:Y-Kanoh/{プロジェクト名}.git

これでは、ホスト名のところにコンテナのハッシュ値が指定されているので、ハッシュ値をDockerが起動しているマシンのIPに変更します。

git@192.168.99.100:Y-Kanoh/{プロジェクト名}.git

この編集したURIをもとに、リモートリポジトリを登録します。

git remote add origin git@192.168.99.100:Y-Kanoh/{プロジェクト名}.git


sshキーの登録

ここで詰まりました。

sshキーを作成し、登録します。

何回キーを登録しなおしてもうまくいかなかったのですが、下記サイトを参考にして、ようやく接続できました。

参考:git公開鍵の追加方法

接続確認コマンドは以下の通りです。

(ssh用の22ポートを2222ポートに変更している点に注意)

Permission denied (publickey).などが表示されず、Welcome to GitLabと言われれば成功です。

 ssh -T 192.168.99.100 -p 2222

あとはGit管理下のソースをpushすれば完了です。


追記

上記、sshキーを発行するときに、以下のコマンドを忘れるのでメモ。

$ eval $(ssh-agent -s)

$ ssh-add ~/.ssh/id_rsa