自分専用Dockerイメージの無料での簡単な作り方(GitHub ActionsでビルドしてDocker Hubに保存)
Dockerイメージを使う機会がある方向けの記事です。
Dockerなんて聞いたことがない、という人はそっと閉じてください。
Dockerイメージの置き場所を作る
まずDocker Hubにアカウントを作りましょう。
Dockerのイメージの保管場所として最もポピュラーな場所です。
以下にアクセスしてSign-inをしてください。
ログインできたらCreate repositoryボタンをクリック
![](https://assets.st-note.com/img/1701870684784-LOQjeh121F.png?width=1200)
Publicは誰でもアクセスできるリポジトリなので、仮想通貨のウォレットアドレスなどはなるべく入れてはいけません。秘密鍵やシードフレーズは以ての外です。ただし、Privateにも入れて良いものではありません。
そのため、今回作ろうとしているDockerイメージが「他人に見せても構わないもの」であれば、Publicが無制限に無料なので、Publicを選んでも良いでしょう。
リポジトリ名を入れて、VisibilityをPublicかPrivateかお好きな方を選んでください
![](https://assets.st-note.com/img/1701870760699-xOlcRzIyA9.png?width=1200)
Dockerイメージをビルドするための場所としてGitHubのアカウントを作る
GitHubのアカウントを既に持っている人はスキップしてください。
以下にアクセスしてSign Upしてください。
Dockerイメージをビルドするためのコードの置き場所としてGitHubリポジトリを作る
GitHubにSign Up・Sign-inするとNewボタンがあると思うのでこちらをクリック
![](https://assets.st-note.com/img/1701871115283-yHPRu9qyUb.png)
リポジトリは一旦非公開で作ると良いでしょう。今回は自分専用のイメージを作ることが目的なので、Publicにする意味はないでしょう。
GitHubは無料アカウントでもPrivateリポジトリを作ることが個人であれば可能です。
リポジトリ名はお好みの名前を入れてください。
![](https://assets.st-note.com/img/1701871297861-9ORO1FJPPH.png?width=1200)
リポジトリができたら次はDockerイメージを作るためのファイル、Dockerfileを作成します。
小さい文字ですが「creating a new file」という青文字のリンクを押してください。
![](https://assets.st-note.com/img/1701873140013-3ycsPY6qpO.png?width=1200)
Dockerfileというファイル名を入力します。
ファイルの中身は、まぁ、頑張って書いてください。
その後、Commit changes…をクリック
![](https://assets.st-note.com/img/1701871596654-HEk7Njs90A.png?width=1200)
これでDockerfileが作成されます。
以降、このファイルを編集したいときにはファイルをクリックすれば編集ボタンがあるのでそこから編集できます
![](https://assets.st-note.com/img/1701871699178-78GOhwwrR6.png?width=1200)
Dockerイメージをビルドする
先程作ったDockerファイルをビルドしてみましょう。
ActionsというタブがあるのでActionsをクリックしてください。
その中の「Docker Image」をConfigureしてみましょう。
![](https://assets.st-note.com/img/1701871951497-JCqaYcB8T3.png?width=1200)
以下のような感じになると思いますので、一度ここでCommit Changesをして保存しておきましょう
![](https://assets.st-note.com/img/1701871997613-Dvr5u0hzpT.png?width=1200)
GitHubからDocker Hubへのアクセス設定(Docker Hub側)
GitHubからDocker Hubにイメージを保存するためにちょっとだけ設定が必要です。Docker Hub側にアクセスしましょう。
以下のDocker Hubのアカウント設定内のSecurityタブを開きます。
New Access Tokenをクリック
![](https://assets.st-note.com/img/1701872133929-eTlLW2RH9h.png?width=1200)
トークン名は適当でいいのでGenerateしてください。
(GitHubとかがいいと思います)
![](https://assets.st-note.com/img/1701872174241-oy02iRCYBc.png?width=1200)
以下のようにユーザー名とアクセストークンが表示されます。
この2つをメモりましょう。
![](https://assets.st-note.com/img/1701872271662-a24pRygABs.png)
GitHubからDocker Hubへのアクセス設定(GitHub側)
先程GitHubに作成したリポジトリのSettingsページから「New repository secret」をクリックしてください。
![](https://assets.st-note.com/img/1701872399393-DROERR0Gdk.png?width=1200)
Name: DOCKERHUB_TOKEN
Secret: 先程コピーしたDocker Hubのアクセストークン
2つ目にユーザー名も同じように保存します。
Name: DOCKERHUB_USERNAME
Secret: 先程コピーしたDocker Hubのユーザーアカウント名
GitHubのリポジトリ上にある .github/workflows ディレクトリを開く
docker-image.ymlファイルを開く
Editボタンを押す
![](https://assets.st-note.com/img/1701872577391-hdfTJKQ9xc.png?width=1200)
以下のように編集します。基本的にはDocker HubにPushするためのコードを書く形です。
【DockerHubのユーザー名を入れてね】/【DockerHubに作ったリポジトリ名を入れてね】
上記の部分は書き換えてください。
name: Build and Push Docker Image
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and Push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: 【DockerHubのユーザー名を入れてね】/【DockerHubに作ったリポジトリ名を入れてね】:latest
その後またCommit changes…ボタンを押して保存してください。
Dockerイメージがビルドされて、Docker Hubにアップロードされます。
以降はファイルを編集するたびに勝手にビルドされてアップロードされます。お疲れ様でした!
Dockerイメージを使う際は以下のようなコマンドで使えるでしょう。
docker pull あなたのDockerHubアカウント名/作ったリポジトリ名:latest
docker run --name お好きな名前 -it あなたのDockerHubアカウント名/作ったリポジトリ名:latest /bin/bash
以上。GitHub ActionsとDocker Hubを使ったクラウド環境でのDockerイメージの自動ビルド&保存に関する記事でした。
時間を掛けて調べたり写真を撮ったりして記事を書いています。「良かった」と思ったらサポートしてもらえると嬉しいです。 有料エリアを設けることもありますが、どちらか片方だけお願いできれば助かります。 サポート頂ければもっと多く頑張って書きます!