Docker で GitLab を運用する
数人の規模であるならばGitLab
をDocker
で運用するのもありかと思います。その際にハマった(ている)ことを書きます。
ポート番号を変えるとき
Docker
から外に出すポート番号をデフォルトの80番から変更したとき、以下の設定項目を適用する必要があります。
nginx['listen_port'] = 80
これを設定しないと、external_url
に'http://192.168.100.100:12345'
のようにポート番号を付与して値を与えた場合にアクセスできません。
以下は解決前に書いた内容ですので、正しくありません。
ポートを80番から変えたとき
Docker
から外に出すポート番号をデフォルトの80番から変更したとき、GitLab 自体にアクセスはできるのですが、メール認証ができません。
正確には、メールで送られてくる認証用の URI にポート番号が付与されません。手動でむりやりポート番号を付与すればいいのですが、あまりスマートではないですよね。
gitlab.rb
で設定できない
設定ファイルの総本山であるgitlab.rb
にexternal_url
という項目があり、この項目に'http://192.168.100.100'
などと指定することで GitLab にアクセスするアドレスが指定できます。
ただしこの項目(アドレス指定)にポート番号を含めるとアクセスできません*1。
必死に調べたところ以下のようなページがヒットし、どうも現時点ではどうしようもないようです。「Docker
を用いて」、「ローカルホストで」、「ポート番号を変える」と、この状況になってしまうようです。
検索で出てきた数年前のページですとexternal_port
という設定項目があるのですが、この項目は現在有効ではない(?)ようです。
結論
対応方法としては、前述したように手動でポート番号を付与してアクセスするのがいいでしょう。面倒ではありますが、頻繁に行うことでもありませんので、差し当たっては様子を見るということでよいかと思います。
*1:私の環境だけかもしれません