common: Automatize UPSTREAM_DISTRO name based on image name

Similar to what is already done with DISTRO, which points to given image
of ours based on name. This time we do the same with upstream images,
such as debian:stretch or centos:centos8.

This way, for instance calling docker_images_require
"osmo-bsc-latest-centos8" would try to build the
osmo-bsc-latest/Dockerfile file starting from a centos8 image.

Change-Id: I33cb21aa024396974559fd98f9f3c64e2c351eda
changes/38/21238/2
Pau Espin 2 years ago committed by laforge
parent b83c28fc34
commit 78ae9377a7
  1. 4
      centos-repo-install-test/Dockerfile
  2. 3
      centos8-build/Dockerfile
  3. 3
      debian-repo-install-test/Dockerfile
  4. 3
      debian-stretch-build/Dockerfile
  5. 3
      debian-stretch-titan/Dockerfile
  6. 27
      jenkins-common.sh
  7. 2
      make/Makefile
  8. 3
      osmo-bsc-latest/Dockerfile
  9. 3
      osmo-bts-latest/Dockerfile
  10. 3
      osmo-cn-latest/Dockerfile
  11. 3
      osmo-ggsn-latest/Dockerfile
  12. 3
      osmo-hlr-latest/Dockerfile
  13. 3
      osmo-hnbgw-latest/Dockerfile
  14. 3
      osmo-mgw-latest/Dockerfile
  15. 3
      osmo-msc-latest/Dockerfile
  16. 3
      osmo-nitb-latest/Dockerfile
  17. 3
      osmo-pcu-latest/Dockerfile
  18. 3
      osmo-remsim-latest/Dockerfile
  19. 3
      osmo-sgsn-latest/Dockerfile
  20. 3
      osmo-sip-latest/Dockerfile
  21. 3
      osmo-stp-latest/Dockerfile

@ -1,6 +1,7 @@
ARG USER
ARG REGISTRY=docker.io
FROM ${REGISTRY}/centos:centos8
ARG UPSTREAM_DISTRO=centos:centos8
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
# dnf-utils: for repoquery
RUN dnf install -y \
@ -9,4 +10,3 @@ RUN dnf install -y \
# Make additional development libraries available
RUN yum config-manager --set-enabled PowerTools

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/centos:centos8
ARG UPSTREAM_DISTRO=centos:centos8
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
# Let package metadata expire after 60 seconds instead of 48 hours
RUN echo "metadata_expire=60" >> /etc/dnf/dnf.conf && cat /etc/dnf/dnf.conf

@ -1,6 +1,7 @@
ARG USER
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
COPY Release.key /tmp/Release.key

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -12,10 +12,18 @@ docker_depends() {
docker_distro_from_image_name() {
case "$1" in
osmo-*-centos8) echo "centos8"; ;;
osmo-*-centos8) echo "centos8" ;;
centos8-*) echo "centos8" ;;
*) echo "debian-stretch" ;;
esac
}
docker_upstream_distro_from_image_name() {
case "$1" in
osmo-*-centos8) echo "centos:centos8"; ;;
centos8-*) echo "centos:centos8" ;;
*) echo "debian:stretch" ;;
esac
}
docker_dir_from_image_name() {
@ -27,15 +35,20 @@ docker_dir_from_image_name() {
# Make sure required images are available and build them if necessary.
# $*: image names (e.g. "debian-stretch-build", "osmo-mgw-master", "osmo-mgw-master-centos8")
# The images are automatically built from the Dockerfile of the subdir of the same name. If there is a
# distribution name at the end of the image name (e.g. osmo-mgw-master-centos8), it gets removed from the subdir
# where the Dockerfile is taken from (e.g. osmo-mgw-master/Dockerfile) and DISTRO is passed accordingly
# (e.g. DISTRO=centos8). This allows one Dockerfile for multiple distributions, without duplicating configs for
# each distribution. Dependencies listed in docker_depends() are built automatically too.
# The images are automatically built from the Dockerfile of the subdir of
# the same name. If there is a distribution name at the end of the image
# name (e.g. osmo-mgw-master-centos8), it gets removed from the subdir
# where the Dockerfile is taken from (e.g. osmo-mgw-master/Dockerfile)
# and UPSTREAM_DISTRO and DISTRO are passed accordingly (e.g.
# UPSTREAM_DISTRO=centos:centos8 DISTRO=centos8). This allows one
# Dockerfile for multiple distributions, without duplicating configs for
# each distribution. Dependencies listed in docker_depends() are built
# automatically too.
docker_images_require() {
local i
local from_line
local pull_arg
local upstream_distro_arg
local distro_arg
local depends
local dir
@ -49,6 +62,7 @@ docker_images_require() {
# Trigger image build (cache will be used when up-to-date)
if [ -z "$NO_DOCKER_IMAGE_BUILD" ]; then
upstream_distro_arg="$(docker_upstream_distro_from_image_name "$i")"
distro_arg="$(docker_distro_from_image_name "$i")"
dir="$(docker_dir_from_image_name "$i")"
@ -62,6 +76,7 @@ docker_images_require() {
echo "Building image: $i (export NO_DOCKER_IMAGE_BUILD=1 to prevent this)"
make -C "../$dir" \
PULL="$pull_arg" \
UPSTREAM_DISTRO="$upstream_distro_arg" \
DISTRO="$distro_arg" \
IMAGE="$REPO_USER/$i" \
|| exit 1

@ -33,6 +33,7 @@ OSMO_SGSN_BRANCH?=master
OSMO_SIP_BRANCH?=master
OSMO_STP_BRANCH?=master
PULL?=
UPSTREAM_DISTRO?=debian:stretch
DISTRO?=debian-stretch
RELEASE_SUPPORT := $(shell dirname $(abspath $(lastword $(MAKEFILE_LIST))))/.make-release-support
@ -61,6 +62,7 @@ docker-build: .release
--build-arg USER=$(USERNAME) \
--build-arg REGISTRY=$(REGISTRY_HOST) \
--build-arg OSMO_TTCN3_BRANCH=$(OSMO_TTCN3_BRANCH) \
--build-arg UPSTREAM_DISTRO=$(UPSTREAM_DISTRO) \
--build-arg DISTRO=$(DISTRO) \
--build-arg LIBOSMOCORE_BRANCH=$(LIBOSMOCORE_BRANCH) \
--build-arg OSMO_BB_BRANCH=$(OSMO_BB_BRANCH) \

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Daniel Willmann <dwillmann@sysmocom.de>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

@ -1,5 +1,6 @@
ARG REGISTRY=docker.io
FROM ${REGISTRY}/debian:stretch
ARG UPSTREAM_DISTRO=debian:stretch
FROM ${REGISTRY}/${UPSTREAM_DISTRO}
MAINTAINER Harald Welte <laforge@gnumonks.org>

Loading…
Cancel
Save