Change in osmo-ci[master]: docker: only one apt/pip cmd for installing deps

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

osmith gerrit-no-reply at lists.osmocom.org
Fri Oct 18 08:46:05 UTC 2019


osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ci/+/15761 )

Change subject: docker: only one apt/pip cmd for installing deps
......................................................................

docker: only one apt/pip cmd for installing deps

Make the retry logic in rebuild_osmocom_jenkins_image.sh obsolete by
merging all apt commands for installing dependencies into one. This
makes development easier, because the docker image will not get rebuilt
again when any error happens (whether that error was related to the apt
cache or not, during development it is mostly not related to the apt
cache).

This also makes it easier to read through the list of dependencies, and
removes duplicate (or even conflicting, pkg-config vs pkgconf) entries.
While at it, also merge the pip commands into one.

Change-Id: I190e62dd39533b284c93107607dac24ece6d7be6
---
M docker/Dockerfile_osmocom_jenkins.amd64
M docker/rebuild_osmocom_jenkins_image.sh
2 files changed, 110 insertions(+), 55 deletions(-)

Approvals:
  osmith: Looks good to me, approved; Verified
  laforge: Looks good to me, but someone else must approve
  pespin: Looks good to me, but someone else must approve



diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64
index 6b43911..1ff2d0b 100644
--- a/docker/Dockerfile_osmocom_jenkins.amd64
+++ b/docker/Dockerfile_osmocom_jenkins.amd64
@@ -5,15 +5,115 @@
 # https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
 ARG DEBIAN_VERSION
 
+# Install apt dependencies (keep in alphabetic order)
 RUN \
-    dpkg --add-architecture i386 && \
-    DEBIAN_FRONTEND=noninteractive apt-get update && \
-    DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \
-    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends wget make
+	dpkg --add-architecture i386 && \
+	DEBIAN_FRONTEND=noninteractive apt-get update && \
+	DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \
+	DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+		asciidoc \
+		asciidoc-dblatex \
+		autoconf \
+		autoconf-archive \
+		automake \
+		bc \
+		bison \
+		bzip2 \
+		coccinelle \
+		cppcheck \
+		dblatex \
+		dbus \
+		debhelper \
+		devscripts \
+		dh-autoreconf \
+		dh-systemd \
+		docbook5-xml \
+		doxygen \
+		flex \
+		g++ \
+		gawk \
+		gcc \
+		gcc-arm-none-eabi \
+		git \
+		git-buildpackage \
+		graphviz \
+		htop \
+		lcov \
+		libaio-dev \
+		libasound2-dev \
+		libboost-all-dev \
+		libc-ares-dev \
+		libcsv-dev \
+		libdbd-sqlite3 \
+		libdbi-dev \
+		libffi-dev \
+		libfftw3-dev \
+		libgmp-dev \
+		libgnutls28-dev \
+		libgps-dev \
+		libgsm1-dev \
+		liblua5.3-dev \
+		libmnl-dev \
+		libncurses5-dev \
+		libnewlib-arm-none-eabi \
+		liboping-dev \
+		libortp-dev \
+		libpcap-dev \
+		libpcsclite-dev \
+		libreadline-dev \
+		libsctp-dev \
+		libsigsegv-dev \
+		libsnmp-dev \
+		libsofia-sip-ua-glib-dev \
+		libsqlite3-dev \
+		libssl-dev \
+		libtalloc-dev \
+		libtool \
+		libusb-1.0-0-dev \
+		libusb-dev \
+		libxml2-utils \
+		libzmq3-dev \
+		locales \
+		lua-socket \
+		make \
+		mscgen \
+		ofono \
+		openssh-client \
+		osc \
+		patchelf \
+		pkg-config \
+		python \
+		python3 \
+		python3-gi \
+		python3-mako \
+		python3-pip \
+		python3-pyflakes \
+		python3-setuptools \
+		python3-usb \
+		python3-yaml \
+		python-minimal \
+		python-nwdiag \
+		python-pip \
+		python-pychart \
+		python-setuptools \
+		rsync \
+		sdcc \
+		sqlite3 \
+		stow \
+		sudo \
+		systemd \
+		tcpdump \
+		texinfo \
+		unzip \
+		wget \
+		xsltproc
 
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc g++ make git
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends sudo
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends unzip bzip2  python
+# Install pip dependencies (keep in alphabetic order)
+RUN pip3 install \
+	git+https://github.com/podshumok/python-smpplib.git \
+	git+https://github.com/eriwen/lcov-to-cobertura-xml.git \
+	pydbus \
+	pysispm
 
 # match the outside user
 RUN useradd --uid=1000 build
@@ -22,58 +122,16 @@
 RUN mkdir /build
 RUN chown build:build /build
 
-# still generic
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends doxygen git asciidoc rsync coccinelle
-
-# for GNU smalltalk
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends flex bison libsigsegv-dev libffi-dev texinfo
-
-# libosmo-sccp/abis/etc
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libortp-dev libpcsclite-dev libsctp-dev libfftw3-dev libsnmp-dev  libusb-1.0-0-dev libtalloc-dev libgnutls28-dev
-
-# OsmocomBB
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc-arm-none-eabi liblua5.3-dev
-
-# building
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libtool pkg-config automake autoconf
-
-# for osmo-python-tests
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3-setuptools python-setuptools python3-pip python-pip
-
-# for osmo-gsm-manuals
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends xsltproc dblatex docbook5-xml graphviz python-pychart python-nwdiag libxml2-utils asciidoc-dblatex
-
-# Linux kernel
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y bc
-
-# and all
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y doxygen g++ libtalloc-dev libpcsclite-dev make gcc pkgconf libtool autoconf autoconf-archive automake libortp-dev asciidoc mscgen git libsctp-dev libpcap-dev osc libc-ares-dev libgps-dev  libsofia-sip-ua-glib-dev  libssl-dev libsqlite3-dev libusb-dev libffi-dev libfftw3-dev flex bison libdbi-dev  libsnmp-dev libncurses5-dev libgsm1-dev python-minimal python3 libdbd-sqlite3 cppcheck htop  libgmp-dev gawk texinfo flex bison bc  libsigsegv-dev libffi-dev libusb-1.0-0-dev  libreadline-dev debhelper devscripts gcc-arm-none-eabi git-buildpackage dh-systemd dh-autoreconf bc openssh-client stow libnewlib-arm-none-eabi libaio-dev libasound2-dev libzmq3-dev libmnl-dev libboost-all-dev sdcc liboping-dev libcsv-dev systemd
-
-# Add rpath to binaries
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf
-
-# Be able to run the osmo-gsm-tester
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip python3-usb lua-socket
-RUN pip3 install git+git://github.com/podshumok/python-smpplib.git
-RUN pip3 install pydbus
-RUN pip3 install pysispm
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pyflakes
-
+# Install osmo-python-tests
 ADD http://git.osmocom.org/python/osmo-python-tests/patch /tmp/commit
 RUN git clone git://git.osmocom.org/python/osmo-python-tests && cd osmo-python-tests && ./contrib/jenkins.sh
 
 # Set a UTF-8 locale
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y locales
-
 RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
     dpkg-reconfigure --frontend=noninteractive locales && \
     update-locale LANG=en_US.UTF-8
 ENV LANG en_US.UTF-8
 
-# Code coverage tools
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y lcov
-RUN pip3 install git+https://github.com/eriwen/lcov-to-cobertura-xml/
-
 # osmo-remsim needs libulfius (which indirectly depends on systemd, installed above)
 ARG LIBULFIUS_VER="2.6.4"
 ARG LIBULFIUS_PATH="https://github.com/babelouest/ulfius/releases/download/v${LIBULFIUS_VER}"
@@ -81,6 +139,7 @@
 ADD ${LIBULFIUS_PATH}/ulfius-dev-full_${LIBULFIUS_VER}_debian_${DEBIAN_VERSION}_x86_64.tar.gz /tmp/ulfius/all.tar.gz
 RUN cd /tmp/ulfius && \
 	tar -xvf all.tar.gz && \
+	DEBIAN_FRONTEND=noninteractive apt-get update && \
 	DEBIAN_FRONTEND=noninteractive apt-get install -y /tmp/ulfius/*.deb && \
 	cd ~ && \
 	rm -r /tmp/ulfius
diff --git a/docker/rebuild_osmocom_jenkins_image.sh b/docker/rebuild_osmocom_jenkins_image.sh
index 60c516b..5d14d83 100755
--- a/docker/rebuild_osmocom_jenkins_image.sh
+++ b/docker/rebuild_osmocom_jenkins_image.sh
@@ -2,12 +2,8 @@
 
 # Executes docker build with the given parameters and retry in case of error.
 function build_once() {
-	# In case the debian apt archive has become out of sync, try a
-	# --no-cache build if it fails.
-
 	# shellcheck disable=SC2068
-	docker build $@ -f Dockerfile_osmocom_jenkins.amd64 . \
-	|| docker build --no-cache $@ -f Dockerfile_osmocom_jenkins.amd64 .
+	docker build $@ -f Dockerfile_osmocom_jenkins.amd64 .
 }
 
 # Builds a container with a debian version and tag name as parameter.

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/15761
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Change-Id: I190e62dd39533b284c93107607dac24ece6d7be6
Gerrit-Change-Number: 15761
Gerrit-PatchSet: 3
Gerrit-Owner: osmith <osmith at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: osmith <osmith at sysmocom.de>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20191018/6eba38d9/attachment.htm>


More information about the gerrit-log mailing list