Help us understand the problem. What is going on with this article?

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
Y-Kanoh
知識習得のため、主に備忘録として使用。とにかく自分の作業で忘れそうなことをメモメモメモ...。 なにかあれば優しく教えていただけると幸いです。。。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away