Open RyuSA opened 2 years ago
リクエストありがとうございますー multi platformなimageのビルドやregistryに対してのpushの知識を全然持ってないんですがやり方とかってご存知ですか?
multi platformなregistryへのpushは、archを特に意識せずにpushすれば大丈夫です!Dockerhub等、マルチプラットフォームな配信ができるようになっているので
たとえば、Golangであれば「linux/386」「linux/amd64」「linux/arm/v5」の3つにarchに対応したイメージをホストしていたります。
https://hub.docker.com/_/golang?tab=tags
コンテナイメージによっては、タグ名で分けたりしているプロダクトもあったりしますが……vvakame/review
に関して言えば、特に気にせずarch違えど同じタグでpush/shipして良いと思います。
ビルドに関しては、ARGとしてarchを指定できるようにしておきDockerfileの中でuname -m
で初期値を与えてあげる……とかが良さそうに見えます🤔
github actionで自動化される場合は、たとえばこんな感じに記述することで実現できます。
https://github.com/RyuSA/simple-accesspoint/blob/main/.github/workflows/main.yaml#L30
おーなるほど ありがとうございます ちょっと勉強してみます〜
vvakame/review
のコンテナイメージはいずれもamd64のコンテナイメージのみ提供されており、arm64のコンテナイメージが欲しい場合は自前でビルドする必要があります。現在、自分はM1 Macの環境でDockerfileを下記の通り修正して自前ビルドして使っています。PDFビルド等の挙動に問題はありません。
各種依存関係もarm64対応しており、また最近はarm64のマシンの利用も増えてきましたのでarm64対応のコンテナイメージの提供があると非常に助かります。