Colima 覚え書き、Ktorアプリをコンテナ実行まで の続きです。 今回は、 Colima docker でつくったコンテナイメージを Azure Container Registry へ push します。
ガイドはこれ:
ここでの説明は az login 済みであることが前提。
そもそも、ACR を用意していないのでつくる:
createACR.sh:
#!/bin/bash
RG=myktor-rg
ACR_NAME=myktor
L=eastus
az group create --name ${RG} --location ${L}
az acr create --resource-group ${RG} --name ${ACR_NAME} --sku Basic --admin-enabled true
なお、紙面の都合上 az group create と az acr create を連続実行しているが、 最初のコマンドが失敗したら次のコマンドは意味をなさないから別々に実行した方がいい。
myktor の部分は適当な名前に置きかえてください。 そもそも既存の名前は使えないから実際は myktor などという短い名前が通るか不明。 ここでは ACR名が myktor だったとして説明していく。
実行:
$ sh createACR.sh
標準出力のうち loginServer をメモしておく。 (あとでわかったのだが実際は、ACR_NAME さえわかれば問題ないかも。)
では、 az acr login する:
$ az acr login --name myktor.azurecr.io
エラーが出た。
025-02-10 01:30:45.422956 An error occurred: DOCKER_COMMAND_ERROR
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
確認する:
$ colima ls
PROFILE STATUS ARCH CPUS MEMORY DISK RUNTIME ADDRESS
default Stopped aarch64 2 2GiB 24GiB
colima stop 状態のなので、まずは colima start する。 そして再度 az acr login する:
$ colima start
$ az acr login --name myktor.azurecr.io
できた。
メッセージでる:
The login server endpoint suffix '.azurecr.io' is automatically omitted. Login Succeeded
.azurecr.io はつけなくていいらしい。 これで実際はログインできる(ようだ)。
$ az acr login --name myktor
イメージ作成済みか確認:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ない。 コンテナイメージをつくる。
$ ./gradlew buildFatJar
$ docker build -t my-ktor .
ちなみに Dockerfile はこれ:
FROM --platform=linux/amd64 eclipse-temurin:17-jre WORKDIR /app COPY app/build/libs/fat.jar fat.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "fat.jar"]
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
my-ktor latest a1725e39c7f3 3 seconds ago 281MB
eclipse-temurin 17-jre af0895d1861a 10 days ago 263MB
たぶん、次のようにするだけで push できる気もする(試してはいない)。
$ docker push my-ktor:latest
ここでは、 この クイック スタート:Azure CLI を使用したプライベート コンテナー レジストリの作成 Offical ガイドページにしたがって、タグづけしてから push する。
タグを追加:
$ docker tag my-ktor myktor.azurecr.io/my-ktor:v1
確認:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
myktor.azurecr.io/my-ktor v1 a1725e39c7f3 11 minutes ago 281MB
...
タグづけしたイメージを push する:
$ docker push myktor.azurecr.io/my-ktor:v1
ACR に push されたか確認:
$ az acr repository list --name myktor
[
"my-ktor"
]
ACRに無事 push できました。