commit cedb111eeb311cf96f2d5ce71c8eb48102075940 Author: Nils Freydank Date: Wed Apr 29 09:20:00 2020 +0200 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..13c3e2e --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# ---> Vim +# Swap +[._]*.s[a-v][a-z] +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim + +# Temporary +.netrwhist +*~ +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +# ---> Kate +# Swap Files # +.*.kate-swp +.swp.* diff --git a/COPYING-MIT b/COPYING-MIT new file mode 100644 index 0000000..67424f4 --- /dev/null +++ b/COPYING-MIT @@ -0,0 +1,19 @@ +Copyright 2020 Nils Freydank + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c476427 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,30 @@ +# +# Dockerfile to add a precompiled glibc to an alpinelinux container. +# Copyright (C) 2020 by Nils Freydank , +# published according to terms of the MIT license. +# +# Note: This copyright and license only affects the docker/podman file itself. +# The installed softwarecomponents have their own respective licsenses! + +FROM alpine-x86_64:3.11.6 as builder + +ENV GLIBC_VERSION="2.31-r0" +ENV ALPINE_ARCH="x86_64" +RUN apk add --no-cache --update-cache ca-certificates + +# Grab upstreams GnuPG pubkey to verify downloads later on. +#RUN wget -q -O - https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub | \ +# gpg --import - +RUN wget -O /etc/apk/keys/sgerrand.rsa.pub \ + https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub +RUN wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk +RUN apk add glibc-${GLIBC_VERSION}.apk + +# Cleanup +RUN rm -rf ~/.gnupg /var/cache/* glibc-${GLIBC_VERSION}.apk \ + /etc/apk/keys/sgerrand.rsa.pub + +### Create the actual image. +FROM scratch +MAINTAINER Nils Freydank "nils+container@holgersson.xyz" +COPY --from=builder . . diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..ade1179 --- /dev/null +++ b/README.rst @@ -0,0 +1,37 @@ +alpine-x86_64-glibc +=================== + +This repository contains a dockerfile to add a `pre-built glibc`_ to an +otherwise emtpy alpine container. This is necessary for some software +that is shipped precompiled and linked against glibc only. `Alpine Linux`_ +itself uses the much smaller and faster `musl libc`_ (which is also considered +often as a more secure replacement for the glibc). + +Usage +----- + +To use this image you need the base alpine image (either from a registry, then +you need to edit the Dockerfile, or -- preferred -- self-build as alpine-x86_64) +and podman or docker installed. Then simply build the image based on the +dockerfile: + +.. code:: shell + + podman build . -t alpine-glibc-x86_64:3.11.6_2.31-r0 + +The tag is a suggestion to include both the alpine and the glibc version. + +Author and Copying +------------------ + +This repository is authored by `Nils Freydank`_. You can use, modify and +share this code under the terms of the MIT license (see the file +COPYING-MIT for details). + +.. links + +.. _`pre-built glibc`: https://github.com/sgerrand/alpine-pkg-glibc/releases +.. _`Alpine Linux`: https://alpinelinux.org/about/ +.. _`musl libc`: https://musl.libc.org/ +.. _`podman`: https://github.com/containers/libpod +.. _`Nils Freydank`: mailto:nils+container@holgersson.xyz?Subject:\ alpine\ podman