goのginをdocker-composeでローカル環境で動かす
以下のような構成で作成しました。
main.go作成後、以下を実行します。
ファイルの内容はこの通り
Dockerfile
main.go
docker-compose.yml
ハマったところとしては、ginのチュートリアルで
router.Run("localhost:8080")
としてサーバーを動かしていたのでそのままやっていたら、コンテナ内で
をやっている分にはレスポンスが返ってきていたのですが、ホストからアクセスしようとすると、そもそもの疎通ができていない状態になってしまっていました。
他の記事等を見ているとlocalhostなしでRun(:8080)としているコードが多かったのでやってみたらこれでいけました。
うーんしかし根本の原因はちょっとよくわからなかったです。
コンテナ力がちょっと足りていないなあ。精進します。
あと微妙にハマったのは、ローカルmacでgo mod tidyでgo.sumを生成していたのですが、ローカルで使っていたgoのバージョンとDockerfileで使っていたgoのイメージのバージョンが違っていたがために、go.sumが整合性取れなくなっていて動かなかった問題もありました。
本当はalpine使ったほうが良かったのかもしれないですが、動いているので大目に見てもらいます。
ともあれ、これで動きました!
ここから開発にブーストかけていきたいと思います!