レガシーコード生産ガイド

私に教えられることなら

dockerでgitlabを動かしてダイナミックDNSで接続する際にハマった

リビングのサーバーにgitlabをdockerで設置して、hoge.nantoka.domainでダイナミックDNS登録して、LAN内のPCから/etc/hostsに127.0.0.1 hoge.nantoka.domainみたいに書いてアクセスしようと、下記にしたがって設定したらsshアクセスできなくなってハマった。

How to change URL of a working GitLab install? - Stack Overflow

/home/git/gitlab/config/gitlab.yml
  production: &base
    gitlab:
      host: "hoge.nantoka.domain"
      port: 114514
      https: false

      ssh_host: "hoge.nantoka.domain"

/home/git/gitlab-shell/config.yml
  gitlab_url: "https://hoge.nantoka.domain:114514/"
  ^- yes, we are on SSL and that is working, even on new url

/etc/nginx/sites-available/gitlab
  server {
    server_name hoge.nantoka.domain

dockerホストの114514をdocker内の8080に設定しているとする。

ssh経由でgit cloneしようとすると次のエラーが出た

/usr/lib/ruby/2.1.0/net/http.rb:879:in `initialize': Connection refused - connect(2) for "hoge.nantoka.domain" port 114514 (Errno::ECONNREFUSED)

で解決したんだけど、単純なミスだった

  • /home/git/gitlab-shell/config.ymlでの設定は、gitlabが動いてるurlを指す
  • とうぜんdocker内のlocalhost
  • ポートもdocker内部のポートだから外部に公開してる114514じゃなくて8080
  • なので gitlab_url は "http://localhost:8080/" から変える必要がない

広告を非表示にする