Does alpine `apk` have an ubuntu `apt` `--no-install-recommends` equivalent

alpine-linux, alpine-package-keeper, docker, package

Solution

No it doesn't have the same flag I think because it does not even do the same behaviour of downloading recommended packages.

However there is another flag `--virtual` which helps keep your images smaller:

apk add --virtual somename package1 package2

and then

apk del somename 

This is useful for stuff needed for only build but not for execution later.

Note you must execute the `add`, the use, and the `del` chained together in one `RUN` command, otherwise the added packages will create an extraneous image layer which will add bloat to the final Docker image, basically undoing what we are trying to achieve.

e.g. if `pything1` needs `package1` and `package2` to run, but only needs `package3` and `package4` during the install build, this would be optimal:

RUN apk add --no-cache package1 package2
RUN apk add --no-cache --virtual builddeps package3 package4 && \
    pip install pything1 && \
    apk del builddeps 

package 3 and 4 are not added the "world" packages but are removed before the layer is written.

This question asks the question other way round: What is .build-deps for apk add --virtual command?

Problem

I'm trying to make the absolute smallest Docker image I can get away with, so I have switched from ubuntu as my base to alpine. For `apt`, I used to use `--no-install-recommends` to minimize "dependencies" installed with my desired packages. Is there an equivalent flag I need to pass along with `apk` or is this the default behavior for this slimmed down OS?

Original source

Related problems