Docker で GitLab をローカルで動作させた際にメール認証やアバター画像表示ができない場合

Docker で GitLab を運用する

数人の規模であるならばGitLabDockerで運用するのもありかと思います。その際にハマった(ている)ことを書きます。

ポート番号を変えるとき

Dockerから外に出すポート番号をデフォルトの80番から変更したとき、以下の設定項目を適用する必要があります。

nginx['listen_port'] = 80

これを設定しないと、external_url'http://192.168.100.100:12345'のようにポート番号を付与して値を与えた場合にアクセスできません。


以下は解決前に書いた内容ですので、正しくありません。

ポートを80番から変えたとき

Dockerから外に出すポート番号をデフォルトの80番から変更したとき、GitLab 自体にアクセスはできるのですが、メール認証ができません。

正確には、メールで送られてくる認証用の URI にポート番号が付与されません。手動でむりやりポート番号を付与すればいいのですが、あまりスマートではないですよね。

gitlab.rbで設定できない

設定ファイルの総本山であるgitlab.rbexternal_urlという項目があり、この項目に'http://192.168.100.100'などと指定することで GitLab にアクセスするアドレスが指定できます。

ただしこの項目(アドレス指定)にポート番号を含めるとアクセスできません*1

必死に調べたところ以下のようなページがヒットし、どうも現時点ではどうしようもないようです。「Dockerを用いて」、「ローカルホストで」、「ポート番号を変える」と、この状況になってしまうようです。

検索で出てきた数年前のページですとexternal_portという設定項目があるのですが、この項目は現在有効ではない(?)ようです。

結論

対応方法としては、前述したように手動でポート番号を付与してアクセスするのがいいでしょう。面倒ではありますが、頻繁に行うことでもありませんので、差し当たっては様子を見るということでよいかと思います。

*1:私の環境だけかもしれません

Powered by はてなブログ