0Pricing
DevOps Bootcamp · レッスン

Actions による Docker イメージのビルド

GitHub Actions のワークフロー内で、アプリケーション用 Docker イメージのビルドプロセスを自動化します。

「Actions による Docker イメージのビルド」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

Dockerイメージとは

ようこそ。このレッスンでは、GitHub Actionsを使用してDockerイメージをビルドする方法を学びます。

まず、Dockerイメージとは何でしょうか。ソフトウェアを実行するために必要なすべてのものを含む、軽量で独立した実行可能なパッケージだと考えてください。

  • コード
  • ランタイム(例:Java、Python)
  • システムツールとライブラリ
  • 設定ファイル

これはDockerコンテナを作成するための設計図のようなもので、異なる環境でもアプリケーションを一貫して実行できるようにします。

Dockerビルドを自動化する理由

Dockerイメージを手動でビルドすると、同じ作業の繰り返しになり、ミスも発生しやすくなります。そこで役立つのが自動化です。

GitHub Actionsを使ってDockerイメージのビルドをCI/CDパイプラインに組み込むと、次のメリットが得られます。

  • 一貫性: すべてのビルドで同じ手順が実行されます。
  • 速度: 自動ビルドは手動ビルドより高速です。
  • 信頼性: 人為的なミスを減らせます。
  • 連携: コードの変更時にビルドが自動的に開始されます。

これは現代のDevOpsにおける基本的な実践方法です。

Dockerfileという設計図

Dockerfileは、Dockerイメージを組み立てるためのすべてのコマンドを記述したテキストファイルです。レシピのようなものです。

非常にシンプルなDockerfileの例を見てみましょう。

FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello from Docker!"]

Dockerfileを理解する

このシンプルなDockerfileを分解して見てみましょう。

  • FROM alpine:latest: ベースイメージを指定します。Alpineという小さなLinuxディストリビューションを使用して開始します。
  • WORKDIR /app: イメージ内の作業ディレクトリを設定します。
  • COPY . .: プロジェクトディレクトリにあるすべてのファイルを、イメージ内の/appディレクトリにコピーします。
  • CMD ["echo", "Hello from Docker!"]: このイメージからコンテナを起動したときに実行されるコマンドです。

このファイルはプロジェクトのルートに配置します。

ワークフローの設定

GitHub ActionsでDockerイメージをビルドするには、リポジトリにYAMLファイル(例:.github/workflows/docker-build.yml)を作成します。

このファイルで、複数の自動化されたステップから成るワークフローを定義します。

イメージをビルドする基本的なワークフローには、通常、次の処理が含まれます。

  1. コードをチェックアウトする
  2. Dockerのビルド環境を設定する
  3. Dockerイメージをビルドする

ステップ1:コードを取得する

ほとんどすべてのGitHub Actionsワークフローでは、最初にリポジトリのコードを取得します。これはactions/checkoutアクションを使用して行います。

このアクションによってリポジトリがランナーにクローンされ、Dockerfileとアプリケーションコードをビルドプロセスで利用できるようになります。

ワークフローファイルでは、次のように記述します。

      - name: Checkout repository code
        uses: actions/checkout@v4

ステップ2:Docker Buildxを設定する

次に、Dockerのビルド環境を設定します。docker/setup-buildx-actionの使用を強くおすすめします。

BuildxはDockerのビルド機能を拡張するコンポーネントで、マルチプラットフォームビルドなどの高度な機能をサポートします。

ワークフローに次のステップを追加します。

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

ステップ3:Dockerイメージをビルドする

いよいよイメージのビルドです。この処理にはdocker/build-push-actionを使用します。

主なオプションは次のとおりです。

  • context: .: ビルドコンテキスト(通常はリポジトリのルート)を指定します。
  • push: false: 今回はレジストリにプッシュせず、ビルドだけを行います。プッシュについては後のレッスンで説明します。
  • tags: my-app:latest: イメージに名前とタグを設定します。
      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

完全なビルドワークフローの例

DockerイメージをビルドするGitHub Actionsワークフローの完全な例です。このYAMLは.github/workflows/docker-build.ymlに記述してください。

このワークフローは、リポジトリへのpushが発生するたびに実行されます。

name: Build Simple Docker Image

on: [push]

jobs:
  build-image:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository code
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build and tag Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          push: false
          tags: my-app:latest

確認

GitHub ActionsでDockerイメージをビルドする方法について、理解度を確認しましょう。

まとめ:Dockerイメージのビルド

よくできました。GitHub ActionsでDockerイメージのビルドを自動化する基本を学びました。

次の内容を扱いました。

  • Dockerイメージとは何か、そしてなぜ重要なのか
  • イメージの設計図としてのDockerfileの役割
  • 基本的なGitHub Actionsワークフローの設定
  • actions/checkout、docker/setup-buildx-action、docker/build-push-actionなどの重要なアクションの使用

次のレッスンでは、ビルドしたイメージをコンテナレジストリにプッシュする方法を学びます。

よくある質問

「Actions による Docker イメージのビルド」レッスンは無料ですか?

はい。「Actions による Docker イメージのビルド」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「Actions による Docker イメージのビルド」で何を学びますか?

GitHub Actions のワークフロー内で、アプリケーション用 Docker イメージのビルドプロセスを自動化します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Actions による Docker イメージのビルド」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Actions による Docker イメージのビルド
  2. レジストリへのイメージのプッシュ
  3. Actions による Kubernetes へのデプロイ
  4. CI/CDにおけるHelm ChartとKubernetesマニフェスト
← DevOps Bootcampに戻る