|
|
|
|
|
by Deradon
2326 days ago
|
|
I'd structure the Dockerfile in another way with the "python:3.8-alpine" approach. E.g. something like: FROM python:3.8-alpine
RUN apk add --no-cache --virtual build-dependencies gcc build-base freetype-dev libpng-dev openblas-dev && \
pip install --no-cache-dir matplotlib pandas && \
apk del build-dependencies
This way you won't keep the build dependencies in the layer and the final image.
Maybe not all of the packages are build-dependencies, but at least there is no need to keep the gcc and build-base package around.
Long story short, wrap your "pip install", "bundle install", "yarn install" around some "apk add .. && apk del" within one RUN.Yes, it would still compile for quite some time, but the final image size is not "851MB" but "489MB".
Still larger than the "363MB" of the "python-slim" version. Guess "pip install" will keep some build artifacts around? |
|
also you dont need clean up the builder, since the unused files are not used in the final image.
also add a new file you can just append it to the builder. (not rebuild required of the previous installs required since you don't care about the size of the builder image )