こんにちは、株式会社medibaでバックエンドエンジニアをしている @mdbr92 です。 この記事は mediba Advent Calendar 2021 の14日目です。 ※記事の内容はあくまで個人の発信であり、会社を代表する意見や見解ではありません。 この記事では Go 言語で記述した HTTP サーバプログラムを AWS ECS などで動かすために シングルバイナリ Docker イメージを作成しようとした際に ハマってしまったことを書きたいと思います。 なぜシングルバイナリイメージにしたいのか? Go言語で記述したプログラムはシングルバイナリ (ランタイムを必要とせず単体で実行できるファイル)にビルドできます。 この実行ファイルのみを scratch(Docker の予約済みの最小限のイメージ)に乗せて ビルドすると 10MB 前後の小さな Docker イメージを生成すること
![GoシングルバイナリDockerイメージビルドでハマったこと - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/5ac6dd6c007e3005462fc1a64ecc31999e37b5a6/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fadvent-calendar-ogp-background-f625e957b80c4bd8dd47b724be996090.jpg%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9R28lRTMlODIlQjclRTMlODMlQjMlRTMlODIlQjAlRTMlODMlQUIlRTMlODMlOTAlRTMlODIlQTQlRTMlODMlOEElRTMlODMlQUFEb2NrZXIlRTMlODIlQTQlRTMlODMlQTElRTMlODMlQkMlRTMlODIlQjglRTMlODMlOTMlRTMlODMlQUIlRTMlODMlODklRTMlODElQTclRTMlODMlOEYlRTMlODMlOUUlRTMlODElQTMlRTMlODElOUYlRTMlODElOTMlRTMlODElQTgmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ21pZGRsZSZzPTM3M2U5ZGEyYWZlOTg2ZWFlZDczMjAyNWVmNmRkYzgx%26mark-x%3D142%26mark-y%3D151%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwbWRicjkyJTIwaW4lMjAlRTYlQTAlQUElRTUlQkMlOEYlRTQlQkMlOUElRTclQTQlQkVtZWRpYmEmdHh0LWNvbG9yPSUyMzNBM0MzQyZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPThjMGJlNzFkMGRlOGU0MTVlNmI4NmZhY2YxMmZlYjFi%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D71444f554d223adc79acca410b892b1c)