GitHub Actions を使用して Docker イメージを構築する方法

GitHub Actions を使用して Docker イメージを構築する方法

この記事では、Docker イメージをビルドしてタグ付けし、Docker Hub レジストリにプッシュするワークフローを GitHub Actions を使用して設定する方法について説明します。

GitHub リポジトリを作成する

まず、イメージをビルドするためのコード (この場合は、実際には Dockerfile のみ) を保持する新しい GitHub リポジトリを作成しましょう。 GitHub でリポジトリを作成し、任意の名前を付けます。リポジトリのルートに Dockerfile というファイルを追加します。手順に従っていただくと、Angular CLI を含むイメージが構築されます。別の画像が必要な場合は、ニーズに合わせて以下を変更します。 Dockerfile の内容は次のようになります。

 # ./Dockerfile FROM node:12-alpine as node-angular-cli LABEL authors="Tinywan" # Linux setup # I got this from another, deprecated Angular CLI image. # I trust that developer, so I continued to use this, but you # can leave it out if you want. RUN apk update \ && apk add --update alpine-sdk \ && apk del alpine-sdk \ && rm -rf /tmp/* /var/cache/apk/* *.tar.gz ~/.npm \ && npm cache verify \ && sed -i -e "s/bin\/ash/bin\/sh/" /etc/passwd # Angular CLI RUN npm install -g @angular/cli@8

GitHub アクションの作成

GitHub Actions を使い始めるには、GitHub のリポジトリ ページで [Actions] タブをクリックします。

写真

次のようなページが表示されます。

写真

この手順により、Docker Hub レジストリにログインします。パスワードを出力し、それを docker login コマンドに渡します。しかし、ここには何か新しいものがあり、それが私たちが使用している秘密です。 GitHub には、各リポジトリの設定に、GitHub Actions などで使用するシークレットを設定できるセクションがあります。

これは素晴らしいことです。そうでなければ、パスワードやアクセス キーをリポジトリに保存して誰でも見られるようにしなければ、Docker Hub などのサードパーティ サービスにログインする方法がないからです。シークレットを見つけるには、リポジトリの上部にある [設定] をクリックし、左側のナビゲーション リストで [シークレット] をクリックして、必要なシークレット (この場合は Docker Hub のユーザー名とパスワード) を追加します。

写真

タグとリリース

最後のステップは、GitHub リポジトリでリリースにタグを付けることです。これにより、ワークフローのビルドが開始されます。これを行うには、[コード] タブの [リリース] セクションをクリックします。

写真

「新しいリリースを下書きする」ボタンをクリックします。 GitHub ではリリースを作成する手順が案内されますが、タグ名と希望するリリース コミットを選択する必要があります。タイトルと説明を追加することもできます。 2 つの点に注意してください。ここで使用するタグ名は Docker イメージのタグ名として使用され、[バージョンの公開] ボタンをクリックするとワークフローが開始されます。準備ができたら、新しいバージョンを公開してください。

ワークフロー出力の表示

ワークフローで何が起こっているかを確認し、必要に応じてデバッグするには、リポジトリの [アクション] タブに戻ります。アクションを作成すると、ページは次のようになります。

写真

[アクション] タブでワークフローを出力するだけでなく、Docker Hub に移動してそこでイメージを表示することも忘れないでください。

写真

<<:  AlibabaのオープンソースK8s環境のローカルテストおよびデバッグツールを使用すると、効率が非常に高くなります。

>>:  Kubernetes を一緒に学ぶ: ワークロードのハイライト

推薦する

Kubernetes、エッジからコア、クラウドまでをカバーするコンテナ

Kubernetes は 6 年前にリリースされ、短期間でコンテナ オーケストレーションと管理の事実...

奇妙な沼地: 医療 SEO に関する外部の視点

Baidu による医療 SEO の継続的な取り締まりにより、多くの医療 SEO 担当者は最近ますます...

新しいウェブサイトの最適化に適したキーワードを選択するための 3 つのヒント

新しいウェブサイトがオンラインになった後、トラフィックランキングを獲得したい場合は、もちろん、熱心に...

ネットワークマーケティングの日常業務は何ですか?ネットワークマーケティングの日々の仕事の概要

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス今日は、江南連盟が記録し...

電子商取引サイトのコンバージョン率についてお話しましょう:収益化のアルゴリズム

非常に興味深いことに、私が旧正月に書いた記事「コンバージョン率について語ろう」は、3か月後にいくつか...

ウェブサイトパスのインタラクティブデザインを分析してユーザー管理を容易にする方法

現在、パスの概念に携わる企業や会社はますます増えていますが、パスとはどのようなものであるべきでしょう...

分散型のTCCモードは好きではない

[[384133]]この記事はWeChatの公開アカウント「プログラマーjinjunzhu」から転載...

A5マーケティング:中小企業はWebサイトの外部リンク構築の作業計画をどのように策定すればよいのでしょうか?

企業のウェブマスターにとって、企業ウェブサイトの外部リンク構築は、毎日一定のサイクルで繰り返される一...

ウェブマスターによるリンクの売買に対する百度による取り締まりは棚上げされるのだろうか?

リンク交換をいつから始めたのかは分かりません。正直に言うと、最初は非常に効果的で、サイトの重みを高め...

マイクロサービスのための分散一貫性パターン

マイクロサービスの分割後に発生する問題の 1 つは、分散後の一貫性の問題です。モノリシック アーキテ...

arkecxはどうですか?日本東京「中国最適化」クラウドサーバー評価:双方向cn2 gia + 双方向as9929 + 双方向CMI

arkecxはどうですか? arkecxの速度はどうですか? arkecxは良いですか? HostC...

国内ウィットキーサイトの運営危機と運営戦略について

現在までに、国内のWitkeyウェブサイト上のWitkey会員数は4,000万人を超えています。新し...

tragicservers-半額/$3.5/4コア/1gメモリ/65gハードディスク/2Tトラフィック/アジア最適化

tragicserversさん、私はいつもこの名前はひどいといつでも言っていますが、最近、グループの...

netcloud-simple 評価 (512MB メモリ)

netcloudは設立されてまだ日が浅いVPS事業者ですが、ドメイン名はかなり古くから存在しています...

ウェブサイトでロングテールキーワードをマイニングするための 4 つのヒント

ターゲットキーワードはBaidu Indexを持っていないかもしれませんが、必ずしもトラフィックがあ...