diff options
Diffstat (limited to 'packages/Dockerfile')
-rw-r--r-- | packages/Dockerfile | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/packages/Dockerfile b/packages/Dockerfile new file mode 100644 index 0000000..5fadea9 --- /dev/null +++ b/packages/Dockerfile @@ -0,0 +1,71 @@ +# Dockerfile fo build a package for following Linux distributions: +# +# +# * alpine +# * archlinux +# * centos +# * fedora +# * debian +# * ubuntu +# * opensuse +# + +ARG vendor +ARG release +ARG version=1.0.2 + +FROM $vendor:$release +# Args are not globaly scoped +ARG vendor +ARG release +ARG version=1.0.2 + +# Install tools required to build a package for several distributions. +# +# Create a user and add it to sudoers. +RUN case $vendor in \ + alpine) \ + apk add alpine-sdk sudo ;\ + ;; \ + archlinux) \ + pacman -Sy; \ + pacman -S --noconfirm fakeroot binutils namcap sudo ;\ + ;; \ + centos|fedora) \ + yum install -y rpm-build spectool sudo ;\ + ;; \ + debian|ubuntu) \ + apt-get update ;\ + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + -o Dpkg::Options::=--force-confdef \ + -o APT::Install-Recommends=no \ + build-essential \ + ca-certificates \ + devscripts \ + equivs \ + libdistro-info-perl \ + sudo \ + wget \ + ;\ + ;; \ + opensuse|opensuse/leap) \ + zypper install -y rpm-build sudo wget ;\ + ;; \ + *) \ + echo "Unsupported vendor '$vendor' (version: '$version')"; \ + exit 1; \ + ;; \ + esac; \ + case $vendor in \ + alpine) adduser -G abuild -s /bin/ash -D builder ;; \ + *) useradd -m -s /bin/sh builder ;; \ + esac; \ + echo 'builder ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/builder; \ + chmod 0400 /etc/sudoers.d/builder + +USER builder +WORKDIR /home/builder + +ENV vendor=$vendor +ENV release=$release +ENV version=$version |