Re: [PATCH v2 8/9] tests/docker: Add dockerfile for Alpine Linux
From: Daniel P. Berrangé <hidden>
Date: 2021-01-27 10:02:06
Also in:
qemu-devel
On Tue, Jan 26, 2021 at 04:38:57PM -0500, John Snow wrote:
On 1/19/21 8:41 AM, Thomas Huth wrote:quoted
On 18/01/2021 11.33, Daniel P. Berrangé wrote:quoted
On Mon, Jan 18, 2021 at 02:38:07PM +0800, Jiaxun Yang wrote:quoted
Alpine Linux[1] is a security-oriented, lightweight Linux distribution based on musl libc and busybox. It it popular among Docker guests and embedded applications. Adding it to test against different libc. [1]: https://alpinelinux.org/ Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> --- tests/docker/dockerfiles/alpine.docker | 57 ++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 tests/docker/dockerfiles/alpine.dockerdiff --git a/tests/docker/dockerfiles/alpine.dockerb/tests/docker/dockerfiles/alpine.docker new file mode 100644 index 0000000000..5be5198d00--- /dev/null +++ b/tests/docker/dockerfiles/alpine.docker@@ -0,0 +1,57 @@ + +FROM alpine:edge + +RUN apk update +RUN apk upgrade + +# Please keep this list sorted alphabetically +ENV PACKAGES \ + alsa-lib-dev \ + bash \ + bison \This shouldn't be required.bison and flex were required to avoid some warnings in the past while compiling the dtc submodule ... but I thought we got rid of the problem at one point in time, so this can be removed now, indeed.quoted
quoted
+ build-base \This seems to be a meta packae that pulls in other misc toolchain packages. Please list the pieces we need explicitly instead.Looking at the "Depends" list on https://pkgs.alpinelinux.org/package/v3.3/main/x86/build-base there are only 6 dependencies and we need most of those for QEMU anyway, so I think it is ok to keep build-base here.quoted
quoted
+ coreutils \ + curl-dev \ + flex \This shouldn't be needed.quoted
+ git \ + glib-dev \ + glib-static \ + gnutls-dev \ + gtk+3.0-dev \ + libaio-dev \ + libcap-dev \Should not be required, as we use cap-ng.Right.quoted
quoted
+ libcap-ng-dev \ + libjpeg-turbo-dev \ + libnfs-dev \ + libpng-dev \ + libseccomp-dev \ + libssh-dev \ + libusb-dev \ + libxml2-dev \ + linux-headers \Is this really needed ? We don't install kernel-headers on other distros AFAICT.I tried a build without this package, and it works fine indeed.quoted
quoted
+ lzo-dev \ + mesa-dev \ + mesa-egl \ + mesa-gbm \ + meson \ + ncurses-dev \ + ninja \ + paxmark \What is this needed for ?Seems like it also can be dropped.quoted
quoted
+ perl \ + pulseaudio-dev \ + python3 \ + py3-sphinx \ + shadow \Is this really needed ?See: https://www.spinics.net/lists/kvm/msg231556.html I can remove the superfluous packages when picking up the patch, no need to respin just because of this. ThomasYou can refer to my post earlier this January for a "minimal" Alpine Linux build, if you wish. My goal was to find the smallest set of packages possible without passing any explicit configure flags. I wonder if it's worth having layered "core build" and "test build" images so that we can smoke test the minimalistic build from time to time -- I seem to recall Dan posting information about a dependency management tool for Dockerfiles, but I admit I didn't look too closely at what problem that solves, exactly.
I'd rather we avoid layered images entirely as it creates extra stages in the gitlab pipeline, and also makes it more complex to auto-generate. Once this initial alpine image is merged, then I intend to add it to the set which are auto-generated from my other patch series. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|