[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 8/9] tests/docker: Add dockerfile for Alpine Linux

From: John Snow
Subject: Re: [PATCH v2 8/9] tests/docker: Add dockerfile for Alpine Linux
Date: Wed, 27 Jan 2021 14:22:42 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0

On 1/27/21 4:58 AM, Daniel P. Berrangé wrote:
On Tue, Jan 26, 2021 at 04:38:57PM -0500, John Snow wrote:
On 1/19/21 8:41 AM, Thomas Huth wrote:
On 18/01/2021 11.33, Daniel P. Berrangé wrote:
On Mon, Jan 18, 2021 at 02:38:07PM +0800, Jiaxun Yang wrote:
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.docker

diff --git a/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
+    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.

+    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.

+    coreutils \
+    curl-dev \
+    flex \

This shouldn't be needed.

+    git \
+    glib-dev \
+    glib-static \
+    gnutls-dev \
+    gtk+3.0-dev \
+    libaio-dev \
+    libcap-dev \

Should not be required, as we use cap-ng.


+    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.

+    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.

+    perl \
+    pulseaudio-dev \
+    python3 \
+    py3-sphinx \
+    shadow \

Is this really needed ?


I can remove the superfluous packages when picking up the patch, no need
to respin just because of this.


You 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.

OK, happy to defer to you here for best practices.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]