diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index a7a4096..ccaa7f9 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -22,8 +22,8 @@ jobs: image: - "debian:11" - "debian:12" - - "fedora:40" - "fedora:41" + - "fedora:42" - "opensuse/leap:15" - "quay.io/centos/centos:stream9" - "ubuntu:22.04" diff --git a/.github/workflows/docker-image-build.yml b/.github/workflows/docker-image-build.yml index aa08a45..157c003 100644 --- a/.github/workflows/docker-image-build.yml +++ b/.github/workflows/docker-image-build.yml @@ -35,8 +35,8 @@ jobs: - centos-stream-9 - debian-11 - debian-12 - - fedora-40 - fedora-41 + - fedora-42 - opensuse-leap-15 - ubuntu-22.04 - ubuntu-24.04 diff --git a/docker/README.md b/docker/README.md index f02d381..e4e635a 100644 --- a/docker/README.md +++ b/docker/README.md @@ -17,6 +17,8 @@ For your convenience, we have provided a Docker-based building and testing metho - fedora-38 _(Fedora 38)_ [[Dockerfile](/docker/fedora/Dockerfile)] - fedora-39 _(Fedora 39)_ [[Dockerfile](/docker/fedora/Dockerfile)] - fedora-40 _(Fedora 40)_ [[Dockerfile](/docker/fedora/Dockerfile)] +- fedora-41 _(Fedora 41)_ [[Dockerfile](/docker/fedora/Dockerfile)] +- fedora-42 _(Fedora 42)_ [[Dockerfile](/docker/fedora/Dockerfile)] - fedora-rawhide _(Fedora Rawhide)_ [[Dockerfile](/docker/fedora/Dockerfile)] - opensuse-leap-15 _(openSUSE Leap 15)_ [[Dockerfile](/docker/opensuse/Dockerfile)] - opensuse-tumbleweed _(openSUSE Tumbleweed)_ [[Dockerfile](/docker/opensuse/Dockerfile)] diff --git a/docker/archlinux/Dockerfile b/docker/archlinux/Dockerfile index 337f800..7fc90d8 100644 --- a/docker/archlinux/Dockerfile +++ b/docker/archlinux/Dockerfile @@ -3,8 +3,19 @@ ARG archlinux_version=latest ARG runner_additional_packages +# Base +FROM archlinux:${archlinux_version} AS base + +## Arguments +ARG archlinux_version + +## Install base dependencies +RUN --mount=type=cache,sharing=locked,id=archlinux:${archlinux_version}-/var/cache/pacman/pkg,target=/var/cache/pacman/pkg \ + --mount=type=cache,sharing=locked,id=archlinux:${archlinux_version}-/var/lib/pacman/sync,target=/var/lib/pacman/sync \ + pacman --sync --refresh --sysupgrade --noconfirm + # Builder -FROM archlinux:${archlinux_version} AS builder +FROM base AS builder ## Arguments ARG archlinux_version @@ -12,7 +23,7 @@ ARG archlinux_version ## Install builder dependencies RUN --mount=type=cache,sharing=locked,id=archlinux:${archlinux_version}-/var/cache/pacman/pkg,target=/var/cache/pacman/pkg \ --mount=type=cache,sharing=locked,id=archlinux:${archlinux_version}-/var/lib/pacman/sync,target=/var/lib/pacman/sync \ - pacman --sync --refresh --sysupgrade --noconfirm \ + pacman --sync --refresh --noconfirm \ apache \ apr \ boost \ @@ -50,7 +61,7 @@ RUN export DESTDIR=/tmp/mod_tile && \ cmake --install . --strip # Runner -FROM archlinux:${archlinux_version} AS runner +FROM base AS runner ## Arguments ARG archlinux_version @@ -59,7 +70,7 @@ ARG runner_additional_packages ## Install runner dependencies RUN --mount=type=cache,sharing=locked,id=archlinux:${archlinux_version}-/var/cache/pacman/pkg,target=/var/cache/pacman/pkg \ --mount=type=cache,sharing=locked,id=archlinux:${archlinux_version}-/var/lib/pacman/sync,target=/var/lib/pacman/sync \ - pacman --sync --refresh --sysupgrade --noconfirm ${runner_additional_packages} \ + pacman --sync --refresh --noconfirm ${runner_additional_packages} \ apache \ cairo \ curl \ diff --git a/docker/centos/stream/Dockerfile b/docker/centos/stream/Dockerfile index d572798..bf01e08 100644 --- a/docker/centos/stream/Dockerfile +++ b/docker/centos/stream/Dockerfile @@ -4,22 +4,31 @@ ARG centos_stream_version=9 ARG extra_repository=crb ARG mapnik_version=4.0.3 -# Mapnik Builder -FROM quay.io/centos/centos:stream${centos_stream_version} AS mapnik-builder +# Base +FROM quay.io/centos/centos:stream${centos_stream_version} AS base ## Arguments ARG centos_stream_version ARG extra_repository -ARG mapnik_version -## Install mapnik-builder dependencies +## Install base dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ echo "keepcache=True" >> /etc/dnf/dnf.conf && \ dnf --assumeyes install "dnf-command(config-manager)" && \ dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ + dnf --assumeyes upgrade + +# Mapnik Builder +FROM base AS mapnik-builder + +## Arguments +ARG centos_stream_version +ARG mapnik_version + +## Install mapnik-builder dependencies +RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ dnf --assumeyes install \ boost-devel \ cairo-devel \ @@ -71,20 +80,13 @@ RUN --mount=type=cache,id=centos:stream${centos_stream_version}-mapnik-src:${map cmake --install . --strip # Builder -FROM quay.io/centos/centos:stream${centos_stream_version} AS builder +FROM base AS builder ## Arguments ARG centos_stream_version -ARG extra_repository ## Install builder dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ - echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ - echo "keepcache=True" >> /etc/dnf/dnf.conf && \ - dnf --assumeyes install "dnf-command(config-manager)" && \ - dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ - dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ dnf --assumeyes install \ boost-devel \ cairo-devel \ @@ -133,20 +135,13 @@ RUN export DESTDIR=/tmp/mod_tile && \ cmake --install . --strip # Runner -FROM quay.io/centos/centos:stream${centos_stream_version} AS runner +FROM base AS runner ## Arguments ARG centos_stream_version -ARG extra_repository ## Install runner dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ - echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ - echo "keepcache=True" >> /etc/dnf/dnf.conf && \ - dnf --assumeyes install "dnf-command(config-manager)" && \ - dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ - dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ dnf --assumeyes install \ boost-regex \ cairo \ diff --git a/docker/centos/stream/Dockerfile.autotools b/docker/centos/stream/Dockerfile.autotools index 867f975..a611c44 100644 --- a/docker/centos/stream/Dockerfile.autotools +++ b/docker/centos/stream/Dockerfile.autotools @@ -4,22 +4,31 @@ ARG centos_stream_version=9 ARG extra_repository=crb ARG mapnik_version=4.0.3 -# Mapnik Builder -FROM quay.io/centos/centos:stream${centos_stream_version} AS mapnik-builder +# Base +FROM quay.io/centos/centos:stream${centos_stream_version} AS base ## Arguments ARG centos_stream_version ARG extra_repository -ARG mapnik_version -## Install mapnik-builder dependencies +## Install base dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ echo "keepcache=True" >> /etc/dnf/dnf.conf && \ dnf --assumeyes install "dnf-command(config-manager)" && \ dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ + dnf --assumeyes upgrade + +# Mapnik Builder +FROM base AS mapnik-builder + +## Arguments +ARG centos_stream_version +ARG mapnik_version + +## Install mapnik-builder dependencies +RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ dnf --assumeyes install \ boost-devel \ cairo-devel \ @@ -71,20 +80,13 @@ RUN --mount=type=cache,id=centos:stream${centos_stream_version}-mapnik-src:${map cmake --install . --strip # Builder -FROM quay.io/centos/centos:stream${centos_stream_version} AS builder +FROM base AS builder ## Arguments ARG centos_stream_version -ARG extra_repository ## Install builder dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ - echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ - echo "keepcache=True" >> /etc/dnf/dnf.conf && \ - dnf --assumeyes install "dnf-command(config-manager)" && \ - dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ - dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ dnf --assumeyes install \ automake \ boost-devel \ @@ -122,20 +124,13 @@ RUN export DESTDIR=/tmp/mod_tile && \ RUN make test # Runner -FROM quay.io/centos/centos:stream${centos_stream_version} AS runner +FROM base AS runner ## Arguments ARG centos_stream_version -ARG extra_repository ## Install runner dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ - echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ - echo "keepcache=True" >> /etc/dnf/dnf.conf && \ - dnf --assumeyes install "dnf-command(config-manager)" && \ - dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ - dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ dnf --assumeyes install \ boost-regex \ cairo \ diff --git a/docker/centos/stream/Dockerfile.mapnik-latest b/docker/centos/stream/Dockerfile.mapnik-latest index 04c14c3..add7e15 100644 --- a/docker/centos/stream/Dockerfile.mapnik-latest +++ b/docker/centos/stream/Dockerfile.mapnik-latest @@ -3,21 +3,30 @@ ARG centos_stream_version=9 ARG extra_repository=crb -# Mapnik Builder -FROM quay.io/centos/centos:stream${centos_stream_version} AS mapnik-builder +# Base +FROM quay.io/centos/centos:stream${centos_stream_version} AS base ## Arguments ARG centos_stream_version ARG extra_repository -## Install mapnik-builder dependencies +## Install base dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ echo "keepcache=True" >> /etc/dnf/dnf.conf && \ dnf --assumeyes install "dnf-command(config-manager)" && \ dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ + dnf --assumeyes upgrade + +# Mapnik Builder +FROM base AS mapnik-builder + +## Arguments +ARG centos_stream_version + +## Install mapnik-builder dependencies +RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ dnf --assumeyes install \ boost-devel \ cairo-devel \ @@ -69,20 +78,13 @@ RUN --mount=type=cache,id=centos:stream${centos_stream_version}-mapnik-src:lates cmake --install . --strip # Builder -FROM quay.io/centos/centos:stream${centos_stream_version} AS builder +FROM base AS builder ## Arguments ARG centos_stream_version -ARG extra_repository ## Install builder dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ - echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ - echo "keepcache=True" >> /etc/dnf/dnf.conf && \ - dnf --assumeyes install "dnf-command(config-manager)" && \ - dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ - dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ dnf --assumeyes install \ boost-devel \ cairo-devel \ @@ -131,20 +133,13 @@ RUN export DESTDIR=/tmp/mod_tile && \ cmake --install . --strip # Runner -FROM quay.io/centos/centos:stream${centos_stream_version} AS runner +FROM base AS runner ## Arguments ARG centos_stream_version -ARG extra_repository ## Install runner dependencies RUN --mount=type=cache,sharing=locked,id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/cache/dnf \ - echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ - echo "keepcache=True" >> /etc/dnf/dnf.conf && \ - dnf --assumeyes install "dnf-command(config-manager)" && \ - dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \ - dnf --assumeyes install epel-release && \ - dnf --assumeyes upgrade && \ dnf --assumeyes install \ boost-regex \ cairo \ diff --git a/docker/debian/Dockerfile b/docker/debian/Dockerfile index 3231af0..96d78c1 100644 --- a/docker/debian/Dockerfile +++ b/docker/debian/Dockerfile @@ -5,8 +5,21 @@ ARG libiniparser_version=1 ARG libmapnik_version=3.1 ARG runner_additional_packages=libcurl4 libglib2.0 +# Base +FROM debian:${debian_version} AS base + +## Arguments +ARG debian_version + +## Install base dependencies +RUN --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/cache/apt,target=/var/cache/apt \ + --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/lib/apt,target=/var/lib/apt \ + export DEBIAN_FRONTEND=noninteractive && \ + apt-get --yes update && \ + apt-get --yes upgrade + # Builder -FROM debian:${debian_version} AS builder +FROM base AS builder ## Arguments ARG debian_version @@ -15,8 +28,6 @@ ARG debian_version RUN --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/cache/apt,target=/var/cache/apt \ --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/lib/apt,target=/var/lib/apt \ export DEBIAN_FRONTEND=noninteractive && \ - apt-get --yes update && \ - apt-get --yes upgrade && \ apt-get --no-install-recommends --yes install \ apache2 \ apache2-dev \ @@ -51,7 +62,7 @@ RUN export DESTDIR=/tmp/mod_tile && \ cmake --install . --strip # Runner -FROM debian:${debian_version} AS runner +FROM base AS runner ## Arguments ARG debian_version @@ -63,8 +74,6 @@ ARG runner_additional_packages RUN --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/cache/apt,target=/var/cache/apt \ --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/lib/apt,target=/var/lib/apt \ export DEBIAN_FRONTEND=noninteractive && \ - apt-get --yes update && \ - apt-get --yes upgrade && \ apt-get --no-install-recommends --yes install ${runner_additional_packages} \ apache2 \ libcairo2 \ diff --git a/docker/debian/Dockerfile.autotools b/docker/debian/Dockerfile.autotools index 24daa57..65faa91 100644 --- a/docker/debian/Dockerfile.autotools +++ b/docker/debian/Dockerfile.autotools @@ -5,8 +5,21 @@ ARG libiniparser_version=1 ARG libmapnik_version=3.1 ARG runner_additional_packages=libcurl4 libglib2.0 +# Base +FROM debian:${debian_version} AS base + +## Arguments +ARG debian_version + +## Install base dependencies +RUN --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/cache/apt,target=/var/cache/apt \ + --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/lib/apt,target=/var/lib/apt \ + export DEBIAN_FRONTEND=noninteractive && \ + apt-get --yes update && \ + apt-get --yes upgrade + # Builder -FROM debian:${debian_version} AS builder +FROM base AS builder ## Arguments ARG debian_version @@ -15,8 +28,6 @@ ARG debian_version RUN --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/cache/apt,target=/var/cache/apt \ --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/lib/apt,target=/var/lib/apt \ export DEBIAN_FRONTEND=noninteractive && \ - apt-get --yes update && \ - apt-get --yes upgrade && \ apt-get --no-install-recommends --yes install \ apache2 \ apache2-dev \ @@ -42,7 +53,7 @@ RUN export DESTDIR=/tmp/mod_tile && \ RUN make test # Runner -FROM debian:${debian_version} AS runner +FROM base AS runner ## Arguments ARG debian_version @@ -54,8 +65,6 @@ ARG runner_additional_packages RUN --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/cache/apt,target=/var/cache/apt \ --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/lib/apt,target=/var/lib/apt \ export DEBIAN_FRONTEND=noninteractive && \ - apt-get --yes update && \ - apt-get --yes upgrade && \ apt-get --no-install-recommends --yes install ${runner_additional_packages} \ apache2 \ libcairo2 \ diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index ad7fd59..e13e4be 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -200,6 +200,12 @@ services: <<: *build_defaults_fedora args: fedora_version: "41" + fedora-42: + <<: *service_defaults + build: + <<: *build_defaults_fedora + args: + fedora_version: "42" fedora-rawhide: <<: *service_defaults build: diff --git a/docker/fedora/Dockerfile b/docker/fedora/Dockerfile index f984599..546bdb9 100644 --- a/docker/fedora/Dockerfile +++ b/docker/fedora/Dockerfile @@ -1,17 +1,27 @@ # hadolint global ignore=DL3025,DL3040,DL3041,DL3059 # Arguments -ARG fedora_version=40 +ARG fedora_version=42 + +# Base +FROM fedora:${fedora_version} AS base + +## Arguments +ARG fedora_version + +## Install base dependencies +RUN --mount=type=cache,sharing=locked,id=fedora:${fedora_version}-/var/cache/dnf,target=/var/cache/dnf \ + echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ + echo "keepcache=True" >> /etc/dnf/dnf.conf && \ + dnf --assumeyes upgrade # Builder -FROM fedora:${fedora_version} AS builder +FROM base AS builder ## Arguments ARG fedora_version ## Install builder dependencies RUN --mount=type=cache,sharing=locked,id=fedora:${fedora_version}-/var/cache/dnf,target=/var/cache/dnf \ - echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ - echo "keepcache=True" >> /etc/dnf/dnf.conf && \ dnf --assumeyes install \ cairo-devel \ cmake \ @@ -45,15 +55,13 @@ RUN export DESTDIR=/tmp/mod_tile && \ cmake --install . --strip # Runner -FROM fedora:${fedora_version} AS runner +FROM base AS runner ## Arguments ARG fedora_version ## Install runner dependencies RUN --mount=type=cache,sharing=locked,id=fedora:${fedora_version}-/var/cache/dnf,target=/var/cache/dnf \ - echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \ - echo "keepcache=True" >> /etc/dnf/dnf.conf && \ dnf --assumeyes install \ cairo \ glib2 \ diff --git a/docker/opensuse/Dockerfile b/docker/opensuse/Dockerfile index 38aeb60..cbecfe7 100644 --- a/docker/opensuse/Dockerfile +++ b/docker/opensuse/Dockerfile @@ -6,8 +6,20 @@ ARG mapnik_version=4.0.3 ARG opensuse_release=leap ARG opensuse_version=15 +# Base +FROM opensuse/${opensuse_release}:${opensuse_version} AS base + +## Arguments +ARG opensuse_release +ARG opensuse_version + +## Install base dependencies +RUN --mount=type=cache,sharing=locked,id=opensuse/${opensuse_release}:${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp \ + zypper modifyrepo --all --keep-packages && \ + zypper --non-interactive update + # Mapnik Builder -FROM opensuse/${opensuse_release}:${opensuse_version} AS mapnik-builder +FROM base AS mapnik-builder ## Arguments ARG boost_version @@ -18,8 +30,6 @@ ARG opensuse_version ## Install mapnik-builder dependencies RUN --mount=type=cache,sharing=locked,id=opensuse/${opensuse_release}:${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp \ - zypper modifyrepo --all --keep-packages && \ - zypper --non-interactive update && \ zypper --non-interactive install \ cairo-devel \ cmake \ @@ -76,7 +86,7 @@ RUN --mount=type=cache,id=opensuse/${opensuse_release}:${opensuse_version}-mapni cmake --install . --strip # Builder -FROM opensuse/${opensuse_release}:${opensuse_version} AS builder +FROM base AS builder ## Arguments ARG boost_version @@ -85,8 +95,6 @@ ARG opensuse_version ## Install builder dependencies RUN --mount=type=cache,sharing=locked,id=opensuse/${opensuse_release}:${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp \ - zypper modifyrepo --all --keep-packages && \ - zypper --non-interactive update && \ zypper --non-interactive install \ apache2-devel \ cairo-devel \ @@ -136,7 +144,7 @@ RUN export DESTDIR=/tmp/mod_tile && \ cmake --install . --strip # Runner -FROM opensuse/${opensuse_release}:${opensuse_version} AS runner +FROM base AS runner ## Arguments ARG boost_version @@ -145,8 +153,6 @@ ARG opensuse_version ## Install runner dependencies RUN --mount=type=cache,sharing=locked,id=opensuse/${opensuse_release}:${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp \ - zypper modifyrepo --all --keep-packages && \ - zypper --non-interactive update && \ zypper --non-interactive install \ apache2 \ apache2-utils \ diff --git a/docker/ubuntu/Dockerfile b/docker/ubuntu/Dockerfile index f618f8c..5c6b554 100644 --- a/docker/ubuntu/Dockerfile +++ b/docker/ubuntu/Dockerfile @@ -5,8 +5,21 @@ ARG libmapnik_version=3.1 ARG runner_additional_packages ARG ubuntu_version=24.04 +# Base +FROM ubuntu:${ubuntu_version} AS base + +## Arguments +ARG ubuntu_version + +## Install base dependencies +RUN --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/cache/apt,target=/var/cache/apt \ + --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/lib/apt,target=/var/lib/apt \ + export DEBIAN_FRONTEND=noninteractive && \ + apt-get --yes update && \ + apt-get --yes upgrade + # Builder -FROM ubuntu:${ubuntu_version} AS builder +FROM base AS builder ## Arguments ARG ubuntu_version @@ -15,8 +28,6 @@ ARG ubuntu_version RUN --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/cache/apt,target=/var/cache/apt \ --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/lib/apt,target=/var/lib/apt \ export DEBIAN_FRONTEND=noninteractive && \ - apt-get --yes update && \ - apt-get --yes upgrade && \ apt-get --no-install-recommends --yes install \ apache2 \ apache2-dev \ @@ -51,7 +62,7 @@ RUN export DESTDIR=/tmp/mod_tile && \ cmake --install . --strip # Runner -FROM ubuntu:${ubuntu_version} AS runner +FROM base AS runner ## Arguments ARG libiniparser_version @@ -63,8 +74,6 @@ ARG ubuntu_version RUN --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/cache/apt,target=/var/cache/apt \ --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/lib/apt,target=/var/lib/apt \ export DEBIAN_FRONTEND=noninteractive && \ - apt-get --yes update && \ - apt-get --yes upgrade && \ apt-get --no-install-recommends --yes install ${runner_additional_packages} \ apache2 \ libcairo2 \ diff --git a/docker/ubuntu/Dockerfile.autotools b/docker/ubuntu/Dockerfile.autotools index 55a22f9..66d48ea 100644 --- a/docker/ubuntu/Dockerfile.autotools +++ b/docker/ubuntu/Dockerfile.autotools @@ -4,8 +4,21 @@ ARG libiniparser_version=1 ARG libmapnik_version=3.1 ARG ubuntu_version=24.04 +# Base +FROM ubuntu:${ubuntu_version} AS base + +## Arguments +ARG ubuntu_version + +## Install base dependencies +RUN --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/cache/apt,target=/var/cache/apt \ + --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/lib/apt,target=/var/lib/apt \ + export DEBIAN_FRONTEND=noninteractive && \ + apt-get --yes update && \ + apt-get --yes upgrade + # Builder -FROM ubuntu:${ubuntu_version} AS builder +FROM base AS builder ## Arguments ARG ubuntu_version @@ -14,8 +27,6 @@ ARG ubuntu_version RUN --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/cache/apt,target=/var/cache/apt \ --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/lib/apt,target=/var/lib/apt \ export DEBIAN_FRONTEND=noninteractive && \ - apt-get --yes update && \ - apt-get --yes upgrade && \ apt-get --no-install-recommends --yes install \ apache2 \ apache2-dev \ @@ -41,7 +52,7 @@ RUN export DESTDIR=/tmp/mod_tile && \ RUN make test # Runner -FROM ubuntu:${ubuntu_version} AS runner +FROM base AS runner ## Arguments ARG libiniparser_version @@ -52,8 +63,6 @@ ARG ubuntu_version RUN --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/cache/apt,target=/var/cache/apt \ --mount=type=cache,sharing=locked,id=ubuntu:${ubuntu_version}-/var/lib/apt,target=/var/lib/apt \ export DEBIAN_FRONTEND=noninteractive && \ - apt-get --yes update && \ - apt-get --yes upgrade && \ apt-get --no-install-recommends --yes install \ apache2 \ libcairo2 \ diff --git a/docs/build/building_on_fedora.md b/docs/build/building_on_fedora.md index 83c0bfc..a1c068e 100644 --- a/docs/build/building_on_fedora.md +++ b/docs/build/building_on_fedora.md @@ -6,7 +6,7 @@ Please see our [Continuous Integration script](/.github/workflows/build-and-test A Docker-based building & testing setup pipeline is also available [here](/docker) for your convenience. -## Fedora 34/35/36/37/38/39/40/41 +## Fedora 34/35/36/37/38/39/40/41/42 ```shell #!/usr/bin/env bash