WSL(WindowsSubsystemForLinux)を使用してgitlabサーバを立てる
はじめに
WSL上でdockerを使用してgitlabサーバを構築するお話です。
最近WSL上で普通にdockerが動くようになっているみたい(下記記事参照)
qiita.com
(注:docker.ioをインストールしていますが、古いバージョンのようです。最新はdocker-ce?)
なので、WSLのみで動かそうと思っていたのですが
どうも立てたコンテナの中のgitlab.rb
がいじれないようで
結局docker for Windowsとの共存で進めていくことにしました。
(この件について何か情報ありましたらお教えください・・・)
環境
手順(docker)
docker for Windowsの導入
こちらからインストール
WSLの導入
WSLへのdockerのインストール
まずはリポジトリの更新→パッケージの更新を行いましょう。
$ sudo apt-get update
$ sudo apt-get upgrade
あとは公式の手順に従ってインストールです。
- 必要なパッケージをインストール
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
- dockerのGPGキーを追加
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- フィンガープリントの確認
$ sudo apt-key fingerprint 0EBFCD88
- stableリポジトリのセットアップ
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
- パッケージの更新
sudo apt-get update
- dockerのインストール
$ sudo apt-get install docker-ce
- dockerがインストールできたか確認
$ docker --version
docker for Windowsとdockerデーモンの共有設定を行う
- docker for Windowsを起動します。
- 起動したら、右下のクジラのアイコンを右クリック
- [Settings]→[General]に進み、
Expose daemon...
の項にチェックを入れる。 - その後、wsl側のコンソールで
~/.bashrc
を編集する。
最終行あたりにexport DOCKERHOST='tcp://0.0.0.0:2375'
を追記して保存。
これでdockerコマンドがwsl上でも打てるようになっているはずです。
gitlabサーバの起動
下記コマンドを実行
(publishの部分は任意の形式に変えてokです)
$ docker run --detach \ --hostname localhost \ --publish 443:443 \ --publish 80:80 \ --publish 22:22 \ --name gitlab \ --restart always \ gitlab/gitlab-ce:latest
起動までに時間を要するので、ログを監視
$ sudo docker logs -f [Container ID or NAME]
rubyを触ったことがある方なら解ると思いますが、databaseの
migration等が行われているのが確認できると思います。
ちなみに、docker run
コマンドをsudoで実行すると
docker daemonが起動していない旨のエラーメッセージが出ます。
予想ですが、sudoコマンドの場合共有をかけているwindows側のdocker daemonではなく、
WSL上のdocker daemonを使用しようとしている為だと思います。
後はlogで起動確認後(gitlab Reconfigured!とメッセージが出るはず)、
http://localhostに接続しましょう。
この画面が出ればOKです。
rootの初期パスワードを設定してあげて、gitlabを使用してみましょう。
その他
その他gitlabの設定を直接いじりたい時のコマンドを列挙しておきます。
gitlab.rb(設定ファイル)をいじりたい時
docker exec -it [Container ID or NAME] nano /etc/gitlab/gitlab.rb
(nanoでもvimでもokです)
設定の反映
docker exec [container ID or NAME] gitlab gitlab-ctl reconfigure /bin/bash
コンテナ内でbashを使う場合
docker exec -it [containerID or NAME] /bin/bash
volumeについて
私の方で色々試してみたのですが、うまくマウントできない・・・。
うーん、誰かHelp me
(一応検証記事は別で書きます。)
現場からは以上です。