はじめに これはDockerのbest practicesをGo言語のイメージを例にやってみた、という内容の記事です。 Dockerの使い方は覚えたけれど、どのようなDockerfileにすれば良いのかわからない。という方に1つの例を提供することを目的としています。 環境 Docker: Docker version 20.10.23, build v20.10.23 Dockerfileサンプル Dockerのbest practicesを参考に作成したDockerfileがこちらになります。 FROM golang:1.21.0-bullseye AS base WORKDIR /app COPY go.mod go.sum ./ RUN --mount=type=cache,target=/go/pkg/mod/ \ go mod download FROM base AS dev