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 を一緒に学ぶ: ワークロードのハイライト

推薦する

frontrangehosting-768M メモリ KVM/月額 6 ドル/Windows XP-03-08 (超安定)

FrontrangeHosting は onapp にあります。この会社は安定性に関して非常に評判が...

チーター・モバイル、米国IPOの目論見書を提出、最大3億ドルの調達を計画

4月3日、チーター・モバイルは米国証券取引委員会にIPO申請書を提出し、最大3億ドルの資金調達を計画...

百度は内部リンクにますます重点を置いている

今日、地元の病院を検索して、元のウェブサイトのコンテンツを抜粋していたところ、地元の病院のランキング...

マーケティング ホットスポットを共有する場所とマーケティング ホットスポットのトラフィックを誘導する方法 (パート 1)

今日は週末で、家で暇なので、マーケティング ホットスポットについての記事を書きました。私たちの周りで...

どのクラウドサーバーが最適ですか?どのクラウドサーバーが良いですか?推奨クラウドサーバー

どのクラウドサーバーが最適ですか?どのクラウドサーバーが良いですか?これはほとんどの初心者が尋ねる質...

#Cyber​​Monday# liteserver: 月額 2.5 ユーロ、KVM/1G メモリ/512G ハードディスク/6T トラフィック/オランダ データセンター

liteserver (2007~) オランダデータセンターのVPSの3大カテゴリはブラックフライデ...

Baidu Netdiskはポルノコンテンツについて警告を受けた

新華社通信によると、Baidu Netdiskの一部のアカウントがわいせつな情報やポルノ情報を拡散し...

検索エンジン最適化のための最良の「対策」

すべてのものには限界があり、独自の発展と継続の法則があります。やり過ぎは許されません。これが限界であ...

オンラインマーケティング会社が成功するSEMチームを構築する方法についての簡単な説明

どの企業も、完全なオンライン マーケティング チームを持つことを望んでいます。 Hope は、先見の...

企業が今すぐデータセンターからクラウドプラットフォームに移行すべき理由

クラウドへのシームレスで成功した移行を確実に行うには、企業はデータセンターの移行に伴う潜在的な複雑さ...

「私は歌手です」のクリエイティブウェブサイト分析

最近最も人気のあるバラエティ番組が湖南衛星テレビの「私は歌手だ」であることは誰もが知っている。今月、...

Geek Host - 元旦20%オフ/51元/Windows/1Gメモリ/20Gハードドライブ/300Gトラフィック/香港/ロサンゼルス

中国のホスティングブランドであるGeek Hostは、2010年にWordPressブログ向けの仮想...

[Sticky JVM] JVM チューニングとは何ですか?

[[403435]]この記事はWeChatの公開アカウント「Mu Xiaonong」から転載したもの...