golangをDockerでデプロイする¶ (golangでDocker上にデプロイする際に得られた知見を共有します。間違いやもっといい方法があればご指摘下さい) golangはlibcなどに依存せず、さらにすべてstatic linkする、という特徴があります。これはどういうことかというと、golangで出力したバイナリが一つだけあれば動作する、ということです。 golangバイナリをDocker上で動かす¶ Dockerは異なる環境を動かすコンテナとして優れています。しかし、baseとなるイメージが巨大だったり、 docker pullは安全なの? だったりという問題も抱えています。 しかし、golangを使っている場合は、上記の特徴があるため、 出力したバイナリ + 必要なファイル だけで動作できます。(ただし、cgoなどを使っていない場合に限ります) 例¶ 1. tar.gzを作成