はじめに
macでdockerを使ってgo言語のginを使ってテストサーバにアクセスできない問題を解消したので備忘録に置いておきます。
環境
- Mac(Monterey 12.0.1)
- GO 1.17.1
結論
サーバ作成時に
err := router.Run("127.0.0.1:8080")
ではなく
err := router.Run("0.0.0.0:8080")
とする。
問題
今回の環境では、dockerを用いてgoのサーバを建て、hostからgoサーバにアクセスしようとしたところで問題が起きた。
ブラウザで表示しても応答がない。
ちゃんと応答している。
つまり、サーバはしっかり起動しているので、HostからDocker、またはDockerからサーバのどちらかの経路に問題があることがわかる。
今回はどちらかというとDockerからサーバにアクセスができなかった。
Ginでサーバを作成時に127.0.0.1
を指定してしまうと、Dockerからはアクセスができないらしい。0.0.0.0
でアドレスを特定させずにサーバを起動するとDockerからGinにアクセスできる。
この辺の詳細はまた別の機会に。
まとめ
Ginに限らずnodeなどでもDockerでサーバーを建てるときには0.0.0.0
で建てるようにしないと同様の問題で時間をとってしまうので気をつけたい