vvakame / docker-review

Re:VIEW build container by docker
MIT License
146 stars 38 forks source link

arm64コンテナイメージの提供 #68

Open RyuSA opened 2 years ago

RyuSA commented 2 years ago

vvakame/reviewのコンテナイメージはいずれもamd64のコンテナイメージのみ提供されており、arm64のコンテナイメージが欲しい場合は自前でビルドする必要があります。

現在、自分はM1 Macの環境でDockerfileを下記の通り修正して自前ビルドして使っています。PDFビルド等の挙動に問題はありません。

- RUN curl -sL -o /tmp/pandoc.deb https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/pandoc-${PANDOC_DEB_VERSION}-amd64.deb && \
+ RUN curl -sL -o /tmp/pandoc.deb https://github.com/jgm/pandoc/releases/download/${PANDOC_VERSION}/pandoc-${PANDOC_DEB_VERSION}-arm64.deb && \

各種依存関係もarm64対応しており、また最近はarm64のマシンの利用も増えてきましたのでarm64対応のコンテナイメージの提供があると非常に助かります。

vvakame commented 2 years ago

リクエストありがとうございますー multi platformなimageのビルドやregistryに対してのpushの知識を全然持ってないんですがやり方とかってご存知ですか?

vvakame commented 2 years ago

NOTE https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/

RyuSA commented 2 years ago

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して良いと思います。

RyuSA commented 2 years ago

ビルドに関しては、ARGとしてarchを指定できるようにしておきDockerfileの中でuname -mで初期値を与えてあげる……とかが良さそうに見えます🤔

github actionで自動化される場合は、たとえばこんな感じに記述することで実現できます。

https://github.com/RyuSA/simple-accesspoint/blob/main/.github/workflows/main.yaml#L30

vvakame commented 2 years ago

おーなるほど ありがとうございます ちょっと勉強してみます〜