dockerのマルチステージビルドの方法は何ですか?

Dockerのマルチステージビルドとは、Dockerfile内で複数のビルドステージを定義する技術であり、この方法によりイメージのサイズを削減し、ビルド効率を向上させることができます。マルチステージビルドでは、各ステージはそれぞれ独自のベースイメージと命令を持ち、異なる操作を各ステージで行うことができます。

多段構築を使用すると、ビルドプロセスを複数の段階に分割し、各段階の出力を次の段階の入力として使用できます。これにより、ビルドツールや依存パッケージを最終イメージに組み込むことを避け、イメージのサイズを小さくすることができます。

以下は多段階ビルドを使用したDockerfileの例です:

# 第一个阶段,用于构建应用
FROM golang:1.15 as builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# 第二个阶段,用于构建最终镜像
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/myapp .
CMD ["./myapp"]

上記の例では、最初の段階で、アプリケーションを構築するためにgolangの基本イメージを使用し、コンパイルされたバイナリファイルを2番目の段階のalpineの基本イメージにコピーしました。最終的なイメージには、最終的なアプリケーションと実行に必要なランタイム依存関係のみが含まれており、ビルドツールやコンパイル依存関係は含まれていません。

コメントを残す 0

Your email address will not be published. Required fields are marked *