目的
業務でAzure Container Instances使う可能性が出てきたため
その際の調査結果を書き留めておくのが目的です
概要
この記事はAzure Container Registryにコンテナイメージをプッシュするところまでを記載しています
実施環境
- Windows 11
- WSL2
- Docker DeskTop 4.18.0 (104112)
必要なもの
- Azureアカウント
- Azure CLI バージョン 2.4 以降
- Windowsターミナル
事前準備
検証用のコンテナアプリを作成
ユーザ名を入力してそれをprintで表示するだけのFlaskアプリを作成します
(1) app.py
import click
from flask import Flask
from flask.cli import AppGroup
app = Flask(__name__)
user_cli = AppGroup('user')
@user_cli.command('create')
@click.argument("name")
def create_user(name):
print(name)
app.cli.add_command(user_cli)
(2) requirements.txt
Flask==2.2.3
(3) Dockerfile
FROM python:3.10
WORKDIR /usr/src/app
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
cmd flask user create hoge
(4) docker-compose.yml
version: '3'
services:
flask_job:
container_name: flask_job
build:
context: .
dockerfile: Dockerfile
ビルドする
docker compose up -d --build
実行する
docker compose run --rm flask_job
以下のような表示が帰ってくればOKです
hoge
手順
1. Azure CLIを使いAzureにログイン
az login
2.リソースグループの作成
az group create --name sample20230422 --location japaneast
3. Azure Container Registryを作成
az acr create --resource-group sample20230422 --name sample20230422 --sku Basic
4. Azure Container Registryへログイン
az acr login --name sample20230422
以下のような状態になればOKです
Login Succeeded
5. Azure Container Registryへプッシュ
※sample20230422-flask_jobは事前準備でビルドした際に付けられたもの
① プッシュ先のコンテナレジストリのフル ネームを取得
az acr show --name sample20230422 --query loginServer --output table
② プッシュするイメージにタグをつける
docker tag sample20230422-flask_job sample20230422.azurecr.io/sample20230422-flask_job:v1
③ プッシュ
docker push sample20230422.azurecr.io/sample20230422-flask_job:v1
プッシュが完了すると以下のような文言が表示されます
...
ae56c0c5405b: Pushed
v1: digest: sha256:7f6651b3c3220fd1806bbd2d1c01ddf839bca906c5a2de0c766e1f2150ba2126 size: 2843
6. プッシュしたイメージを確認する
az acr repository list --name sample20230422 --output table
以下のような結果が帰ってくればOK
Result
------------------------
sample20230422-flask_job
参考サイト