2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerfileのCOPYの--excludeオプションを使うために(RHEL・Amazon Linux・Ubuntu・MacOsシステム別 / Docker・Podman)

Last updated at Posted at 2025-06-17

Dockerfile の COPY --exclude オプションを使うために

※ 本記事は筆者による検証結果と個人的見解です。誤りや不足がありましたらぜひご指摘ください。

COPY --exclude は Dockerfile に最近追加された新しいオプションです。.dockerignore と比べると、ビルドの 異なるステージごとに 無視するファイルを切り替えられる点がメリットになります。

新しい機能であるため、利用時には コンテナツールのバージョン に注意が必要です。ここでは環境ごとに推奨されるコンテナツールをまとめました。

使用例:

# syntax=docker/dockerfile:1.7-labs
# Podman を使う場合、この行は不要

FROM python:3.11-slim AS builder
COPY --exclude=models . .

# 中略

FROM public.ecr.aws/sagemaker/sagemaker-distribution:2-gpu AS production
COPY models .

# 以降略

必須要件

  • Docker を使う場合
    • Dockerfile の先頭に # syntax=docker/dockerfile:1.7-labs を記述する
    • docker buildx でビルドする
  • Podman を使う場合
    • 2024 年にリリースされた v5.3.0 以降 が必要

Docker と Podman、どちらを選ぶ?

OS / ディストリビューション 推奨ツール 理由
RHEL Podman デフォルトで Podman 5.4.0 がインストール済み。公式リポジトリに Docker がなく、Docker + Buildx Plugin の導入は手間。
Amazon Linux 2023 Docker 公式リポジトリの Docker に Buildx Plugin が同梱されており、sudo dnf install docker ですぐ使える。Podman を入れるには少し準備が必要。
Ubuntu どちらも一手間かかる 公式リポジトリに Docker がなく、Podman も v4.9 と古い。どちらを使うにしても外部リポジトリや手動インストールが必要。
macOS どちらでも可 Docker Desktop(または Rancher Desktop)には Buildx が含まれ、Podman も最新版を簡単に入手できる。

まとめ

  • まずは自分の環境に公式/デフォルトで用意されているツールを確認
  • Podman を使う場合は v5.3.0 以降 であることを必ずチェック
  • Docker を使う場合は Buildx が有効になっているか確認

「試したけど動かない!」という場合は、
docker buildx version / podman --version の結果をご確認ください。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?