-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Distrolessイメージへの乗り換え #1673
Distrolessイメージへの乗り換え #1673
Conversation
RUN mkdir /storage | ||
|
||
ARG DOCKERIZE_VERSION=v0.6.1 | ||
RUN go install github.com/jwilder/dockerize@$DOCKERIZE_VERSION |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
この時点で CGO_ENABLED=0
無くても大丈夫なのかな
|
||
FROM alpine:3.17.1 | ||
FROM gcr.io/distroless/base:nonroot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
userがnonrootになる(でいいのかな?)ということは、イメージを使う側でbind mountをしていたらほぼ確実に影響が出るので、リリースノートに書く & docsを変更する & 使う側で対応しないとですね
# ボリュームにマウントするディレクトリは、nonrootユーザーが所有するように | ||
COPY --chown=nonroot:nonroot --from=build /storage/ /app/storage/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/app/storage
をbind mountしたときは結局ホスト側のuid/gidになっちゃいそう
COPY --from=convert /usr/lib/ /usr/lib/ | ||
COPY --from=convert /lib/ /lib/ | ||
COPY --from=convert /usr/bin/convert /usr/bin/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
結局はimagemagickのインストールが難関っぽそうですね...
こうしてdistroless側のライブラリがなにか上書きされて上手く動かなくなったりしないかとかが気になりますね
それを確かめる方法 or distroless上でどうにかしてビルドする方法ってありそうですか?
ソースからインストール、ポータブルバイナリの導入
もし覚えてたら何がだめだったのか書いてもらえると
imagemagick static compile
とか調べるといろんな人が苦戦した記録が出てくるけど、様々な問題に出くわすのは確定そう
RUN mkdir /storage | ||
|
||
ARG DOCKERIZE_VERSION=v0.6.1 | ||
RUN go install github.com/jwilder/dockerize@$DOCKERIZE_VERSION |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
go install
でもbuild発生するので、ここでもmount=type=cache
しても良さそう
imagemagicを綺麗に入れられる可能性がだいぶ薄いので、traQでは諦めようと思います |
alpineで出てくるvulnerabilityに辟易することがあるので、よりvulnerabilityを孕む可能性の低いdistrolessに乗り換えようと決意した