< 前の記事
GHCR(GitHub Container Registry)にイメージをプッシュ
[Linux]GitHub にプッシュしたらイメージ作成
公開日:2025-11-30
更新日:2025-11-30
更新日:2025-11-30
1. 概要
GitHub Actions で GitHub にプッシュしたら自動的に Docker イメージを作成するようにします。
今回は、HTML を組み込んだ Nginx のイメージを作成します。
今回は、HTML を組み込んだ Nginx のイメージを作成します。
2. GitHub とプッシュする PC の準備
GitHub 側でリポジトリを作成します。
今回は、nginx001 と言う リポジトリを作成しました。
次に、そのリポジトリのクローンを、開発する PC に作成します。
今回は、nginx001 と言う リポジトリを作成しました。
次に、そのリポジトリのクローンを、開発する PC に作成します。
3. ファイル作成
開発する PC のリポジトリのクローンに、ファイルを作成します。
docker build が実行されると、nginx:1.29 をプルしてコンテナを起動します。
コンテナに index.html をコピーします。
3.1 ディレクトリ構成
ディレクトリ構成
nginx001
├─ .github
│ └─ workflows
│ └─ nginx.yml
├─ Dockerfile
└─ index3.2 index.html の作成
コード
TEST3.3 Dockerfile の作成
コード
FROM nginx:1.29
COPY index.html /usr/share/nginx/html/index.html
docker build が実行されると、nginx:1.29 をプルしてコンテナを起動します。
コンテナに index.html をコピーします。
3.4 nginx.yml の作成
.github/workflows/nginx.yml
.github/workflows 配下に .yml があると、GitHub Actions に自動的にワークフローとして認識されます。
上記ワークフローは、on の指定により、main ブランチのリポジトリに何かプッシュされた時に実行されます。
ubuntu-latest の仮想マシン上でリポジトリをチェックアウトし、
Dockerfile をビルド後、イメージを GHCR にプッシュします。
これにより、リポジトリの HTML を含んだ Nginx のイメージを、どこでも使用できるようになります。
コード
name: Nginx Test
on:
push:
branches:
- main # main ブランチにプッシュされたら jobs を実行する
jobs:
build-and-push:
runs-on: ubuntu-latest # ubuntu をランナー(仮想マシン)とする
permissions:
contents: read # ランナーにリポジトリをチェックアウトできるようにする
packages: write # ランナーから GHCR に書き込めるようにする
steps:
- name: Checkout
uses: actions/checkout@v4 # ランナーにリポジトリのチェックアウト
- name: Log in to GHCR
uses: docker/login-action@v3 # GHCR へログイン
with:
registry: ghcr.io # ログイン先
username: ${{ github.actor }} # ユーザ名
password: ${{ secrets.GITHUB_TOKEN }} # パスワード
- name: Build and Push
run: |
IMAGE_NAME=ghcr.io/${{ github.repository }}/my-nginx:1.0.0 # 作成するイメージ名
docker build -t $IMAGE_NAME . # Dockerfile を使ってビルド
docker push $IMAGE_NAME # イメージを GHCR へプッシュ
.github/workflows 配下に .yml があると、GitHub Actions に自動的にワークフローとして認識されます。
上記ワークフローは、on の指定により、main ブランチのリポジトリに何かプッシュされた時に実行されます。
ubuntu-latest の仮想マシン上でリポジトリをチェックアウトし、
Dockerfile をビルド後、イメージを GHCR にプッシュします。
これにより、リポジトリの HTML を含んだ Nginx のイメージを、どこでも使用できるようになります。
4. 作成したファイルのプッシュ
作成したファイルをコミットして GitHub にプッシュします。
GitHub の リポジトリ の Actions を見ると、ワークフローが確認できます。
もしワークフローが実行されていない、またはエラーになっている場合は、index.html を適当に修正して、もう一度コミット、プッシュしてください。
GitHub の リポジトリ の Actions を見ると、ワークフローが確認できます。
もしワークフローが実行されていない、またはエラーになっている場合は、index.html を適当に修正して、もう一度コミット、プッシュしてください。
5. 作成されたイメージの使用
コマンド
docker run \
--name { コンテナ名 } \
-d \
-p 80:80 \
{ イメージ名 }
(例)
docker run \
--name my-nginx-test \
-d \
-p 80:80 \
ghcr.io/testuser/nginx001/my-nginx:1.0.0
http://localhost:8080/ にアクセスして、index.html の内容が表示されれば OK です。
< 前の記事
GHCR(GitHub Container Registry)にイメージをプッシュ

