mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-18 20:50:10 +01:00
7976ecc12a
This lets build steps use `apt-get autoremove` and still have a working fdroidserver.
64 lines
2.4 KiB
Docker
64 lines
2.4 KiB
Docker
|
|
FROM debian:bullseye
|
|
|
|
ENV LANG=C.UTF-8 \
|
|
DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN echo Etc/UTC > /etc/timezone \
|
|
&& echo 'APT::Install-Recommends "0";' \
|
|
'APT::Install-Suggests "0";' \
|
|
'APT::Acquire::Retries "20";' \
|
|
'APT::Get::Assume-Yes "true";' \
|
|
'Dpkg::Use-Pty "0";' \
|
|
'quiet "1";' \
|
|
>> /etc/apt/apt.conf.d/99gitlab
|
|
|
|
# provision-apt-proxy was deliberately omitted, its not relevant in Docker
|
|
COPY provision-android-ndk \
|
|
provision-android-sdk \
|
|
provision-apt-get-install \
|
|
provision-buildserverid \
|
|
provision-gradle \
|
|
setup-env-vars \
|
|
/opt/buildserver/
|
|
|
|
ARG GIT_REV_PARSE_HEAD=unspecified
|
|
LABEL org.opencontainers.image.revision=$GIT_REV_PARSE_HEAD
|
|
|
|
# setup 'vagrant' user for compatibility
|
|
RUN useradd --create-home -s /bin/bash vagrant && echo -n 'vagrant:vagrant' | chpasswd
|
|
|
|
# The provision scripts must be run in the same order as in Vagrantfile
|
|
# - vagrant needs openssh-client iproute2 ssh sudo
|
|
# - ansible needs python3
|
|
#
|
|
# Debian Docker images will soon default to HTTPS for apt sources, so force it.
|
|
# https://github.com/debuerreotype/docker-debian-artifacts/issues/15
|
|
#
|
|
# Ensure fdroidserver's dependencies are marked manual before purging
|
|
# unneeded packages, otherwise, all its dependencies get purged.
|
|
RUN printf "path-exclude=/usr/share/locale/*\npath-exclude=/usr/share/man/*\npath-exclude=/usr/share/doc/*\npath-include=/usr/share/doc/*/copyright\n" >/etc/dpkg/dpkg.cfg.d/01_nodoc \
|
|
&& mkdir -p /usr/share/man/man1 \
|
|
&& apt-get update \
|
|
&& apt-get install ca-certificates \
|
|
&& sed -i 's,http:,https:,' /etc/apt/sources.list \
|
|
&& apt-get upgrade \
|
|
&& apt-get dist-upgrade \
|
|
&& apt-get install openssh-client iproute2 python3 openssh-server sudo \
|
|
&& bash /opt/buildserver/setup-env-vars /opt/android-sdk \
|
|
&& . /etc/profile.d/bsenv.sh \
|
|
&& bash /opt/buildserver/provision-apt-get-install https://deb.debian.org/debian \
|
|
&& bash /opt/buildserver/provision-android-sdk "tools;25.2.5" \
|
|
&& bash /opt/buildserver/provision-android-ndk /opt/android-sdk/ndk \
|
|
&& bash /opt/buildserver/provision-gradle \
|
|
&& bash /opt/buildserver/provision-buildserverid $GIT_REV_PARSE_HEAD \
|
|
&& rm -rf /vagrant/cache \
|
|
&& apt-get autoremove --purge \
|
|
&& apt-get clean \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Vagrant sudo setup for compatibility
|
|
RUN echo 'vagrant ALL = NOPASSWD: ALL' > /etc/sudoers.d/vagrant \
|
|
&& chmod 440 /etc/sudoers.d/vagrant \
|
|
&& sed -i -e 's/Defaults.*requiretty/#&/' /etc/sudoers
|