mirror of
https://github.com/openstreetmap/mod_tile.git
synced 2025-08-01 07:43:30 +00:00
[Backport] Use Mapnik v4.0.0
for Dockerfile
s and GitHub Actions
(#452)
This commit is contained in:
@ -1,66 +1,52 @@
|
|||||||
---
|
---
|
||||||
inputs:
|
inputs:
|
||||||
version:
|
version:
|
||||||
|
default: latest
|
||||||
description: Version of Mapnik to build & install
|
description: Version of Mapnik to build & install
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
steps:
|
steps:
|
||||||
- name: Create `Mapnik` source directory
|
- name: Cache "Checkout `Mapnik`" & "Build `Mapnik`"
|
||||||
run: |
|
id: cache-mapnik
|
||||||
mkdir mapnik-src
|
|
||||||
shell: bash --noprofile --norc -euxo pipefail {0}
|
|
||||||
|
|
||||||
- name: Cache "Download `Mapnik`" & "Build `Mapnik`"
|
|
||||||
id: cache-mapnik-src
|
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: mapnik-src
|
path: |
|
||||||
key: ${{ matrix.image }}-${{ matrix.compiler }}-mapnik-${{ inputs.version }}
|
mapnik-build
|
||||||
|
mapnik-src
|
||||||
|
key: ${{ matrix.image || matrix.os || matrix.box_generic || github.job }}-${{ matrix.compiler }}-mapnik-${{ inputs.version }}
|
||||||
|
|
||||||
- name: Download `Mapnik`
|
- name: Checkout `Mapnik`
|
||||||
run: |
|
uses: actions/checkout@v4
|
||||||
curl --silent --location \
|
with:
|
||||||
https://github.com/mapnik/mapnik/releases/download/v${{ inputs.version }}/mapnik-v${{ inputs.version }}.tar.bz2 \
|
path: mapnik-src
|
||||||
| tar --extract --bzip2 --strip-components=1 --file=-
|
ref: ${{ inputs.version != 'latest' && format('v{0}', inputs.version) || '' }}
|
||||||
shell: bash --noprofile --norc -euxo pipefail {0}
|
repository: mapnik/mapnik
|
||||||
working-directory: mapnik-src
|
submodules: recursive
|
||||||
if: steps.cache-mapnik-src.outputs.cache-hit != 'true'
|
if: steps.cache-mapnik.outputs.cache-hit != 'true'
|
||||||
|
|
||||||
- name: Build `Mapnik`
|
- name: Build `Mapnik`
|
||||||
run: |
|
run: |
|
||||||
# Export variables
|
export CMAKE_BUILD_PARALLEL_LEVEL=${BUILD_PARALLEL_LEVEL:-$(nproc)}
|
||||||
export CUSTOM_DEFINES="-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1"
|
cmake -B mapnik-build -S mapnik-src \
|
||||||
export GDAL_DATA=/usr/share/gdal
|
-DBUILD_BENCHMARK:BOOL=OFF \
|
||||||
export JOBS=${JOBS:-$(nproc)}
|
-DBUILD_DEMO_CPP:BOOL=OFF \
|
||||||
export PROJ_LIB=/usr/share/proj
|
-DBUILD_DEMO_VIEWER:BOOL=OFF \
|
||||||
export PYTHON=${PYTHON:-python3}
|
-DBUILD_TESTING:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_GEOMETRY_TO_WKB:BOOL=OFF \
|
||||||
# Create GDAL_DATA/PROJ_LIB directories
|
-DBUILD_UTILITY_MAPNIK_INDEX:BOOL=OFF \
|
||||||
mkdir --parents ${GDAL_DATA} ${PROJ_LIB}
|
-DBUILD_UTILITY_MAPNIK_RENDER:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_OGRINDEX:BOOL=OFF \
|
||||||
# Configure & build
|
-DBUILD_UTILITY_PGSQL2SQLITE:BOOL=OFF \
|
||||||
./configure \
|
-DBUILD_UTILITY_SHAPEINDEX:BOOL=OFF \
|
||||||
CC="${CC:-gcc}" \
|
-DBUILD_UTILITY_SVG2PNG:BOOL=OFF \
|
||||||
CUSTOM_CFLAGS="${CUSTOM_CFLAGS:-}" \
|
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||||
CUSTOM_CXXFLAGS="${CUSTOM_CXXFLAGS:-}" \
|
-DCMAKE_INSTALL_PREFIX:PATH=/usr
|
||||||
CUSTOM_DEFINES="${CUSTOM_DEFINES:-}" \
|
cmake --build mapnik-build
|
||||||
CUSTOM_LDFLAGS="${CUSTOM_LDFLAGS:-}" \
|
|
||||||
CXX="${CXX:-g++}" \
|
|
||||||
FAST=True \
|
|
||||||
OPTIMIZATION=0 \
|
|
||||||
PREFIX="/usr"
|
|
||||||
make PYTHON=${PYTHON} || make PYTHON=${PYTHON}
|
|
||||||
shell: bash --noprofile --norc -euxo pipefail {0}
|
shell: bash --noprofile --norc -euxo pipefail {0}
|
||||||
working-directory: mapnik-src
|
if: steps.cache-mapnik.outputs.cache-hit != 'true'
|
||||||
if: steps.cache-mapnik-src.outputs.cache-hit != 'true'
|
|
||||||
|
|
||||||
- name: Install `Mapnik`
|
- name: Install `Mapnik`
|
||||||
run: |
|
run: ${{ !matrix.image && 'sudo' || '' }} cmake --install mapnik-build
|
||||||
# Export `PYTHON`
|
|
||||||
export PYTHON=${PYTHON:-python3}
|
|
||||||
|
|
||||||
make install PYTHON=${PYTHON}
|
|
||||||
shell: bash --noprofile --norc -euxo pipefail {0}
|
shell: bash --noprofile --norc -euxo pipefail {0}
|
||||||
working-directory: mapnik-src
|
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
---
|
|
||||||
runs:
|
|
||||||
using: composite
|
|
||||||
steps:
|
|
||||||
- name: Cache "Checkout `Mapnik`" & "Build `Mapnik`"
|
|
||||||
id: cache-mapnik
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
mapnik-build
|
|
||||||
mapnik-src
|
|
||||||
key: ${{ matrix.image || matrix.os || matrix.box_generic || github.job }}-${{ matrix.compiler }}-mapnik-latest
|
|
||||||
|
|
||||||
- name: Checkout `Mapnik`
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
path: mapnik-src
|
|
||||||
repository: mapnik/mapnik
|
|
||||||
submodules: recursive
|
|
||||||
if: steps.cache-mapnik.outputs.cache-hit != 'true'
|
|
||||||
|
|
||||||
- name: Build `Mapnik`
|
|
||||||
run: |
|
|
||||||
export CMAKE_BUILD_PARALLEL_LEVEL=${BUILD_PARALLEL_LEVEL:-$(nproc)}
|
|
||||||
cmake -B mapnik-build -S mapnik-src \
|
|
||||||
-DBUILD_BENCHMARK:BOOL=OFF \
|
|
||||||
-DBUILD_DEMO_CPP:BOOL=OFF \
|
|
||||||
-DBUILD_DEMO_VIEWER:BOOL=OFF \
|
|
||||||
-DBUILD_TESTING:BOOL=OFF \
|
|
||||||
-DBUILD_UTILITY_GEOMETRY_TO_WKB:BOOL=OFF \
|
|
||||||
-DBUILD_UTILITY_MAPNIK_INDEX:BOOL=OFF \
|
|
||||||
-DBUILD_UTILITY_MAPNIK_RENDER:BOOL=OFF \
|
|
||||||
-DBUILD_UTILITY_OGRINDEX:BOOL=OFF \
|
|
||||||
-DBUILD_UTILITY_PGSQL2SQLITE:BOOL=OFF \
|
|
||||||
-DBUILD_UTILITY_SHAPEINDEX:BOOL=OFF \
|
|
||||||
-DBUILD_UTILITY_SVG2PNG:BOOL=OFF \
|
|
||||||
-DCMAKE_BUILD_TYPE:STRING=Release \
|
|
||||||
-DCMAKE_CXX_STANDARD:STRING=17 \
|
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=/usr
|
|
||||||
cmake --build mapnik-build
|
|
||||||
shell: bash --noprofile --norc -euxo pipefail {0}
|
|
||||||
if: steps.cache-mapnik.outputs.cache-hit != 'true'
|
|
||||||
|
|
||||||
- name: Install `Mapnik`
|
|
||||||
run: ${{ !matrix.image && 'sudo' || '' }} cmake --install mapnik-build
|
|
||||||
shell: bash --noprofile --norc -euxo pipefail {0}
|
|
28
.github/actions/dependencies/install/action.yml
vendored
28
.github/actions/dependencies/install/action.yml
vendored
@ -104,27 +104,21 @@ inputs:
|
|||||||
memcached
|
memcached
|
||||||
opensuse-mapnik-build-dependencies:
|
opensuse-mapnik-build-dependencies:
|
||||||
default: >-
|
default: >-
|
||||||
bzip2
|
cmake
|
||||||
freetype-devel
|
freetype-devel
|
||||||
gdal-devel
|
gdal-devel
|
||||||
|
git
|
||||||
harfbuzz-devel
|
harfbuzz-devel
|
||||||
libboost_filesystem1_75_0-devel
|
|
||||||
libboost_headers1_75_0-devel
|
|
||||||
libboost_program_options1_75_0-devel
|
|
||||||
libboost_regex1_75_0-devel
|
libboost_regex1_75_0-devel
|
||||||
libboost_system1_75_0-devel
|
|
||||||
libicu-devel
|
libicu-devel
|
||||||
libjpeg8-devel
|
libjpeg8-devel
|
||||||
libpng16-devel
|
libpng16-devel
|
||||||
libtiff-devel
|
libtiff-devel
|
||||||
libwebp-devel
|
libwebp-devel
|
||||||
libxml2-devel
|
libxml2-devel
|
||||||
make
|
|
||||||
postgresql-devel
|
postgresql-devel
|
||||||
proj-devel
|
proj-devel
|
||||||
python3
|
|
||||||
sqlite3-devel
|
sqlite3-devel
|
||||||
tar
|
|
||||||
zlib-devel
|
zlib-devel
|
||||||
rhel-build-dependencies:
|
rhel-build-dependencies:
|
||||||
default: >-
|
default: >-
|
||||||
@ -145,9 +139,10 @@ inputs:
|
|||||||
rhel-mapnik-build-dependencies:
|
rhel-mapnik-build-dependencies:
|
||||||
default: >-
|
default: >-
|
||||||
boost-devel
|
boost-devel
|
||||||
bzip2
|
cmake
|
||||||
freetype-devel
|
freetype-devel
|
||||||
gdal-devel
|
gdal-devel
|
||||||
|
git
|
||||||
harfbuzz-devel
|
harfbuzz-devel
|
||||||
libicu-devel
|
libicu-devel
|
||||||
libjpeg-devel
|
libjpeg-devel
|
||||||
@ -155,12 +150,9 @@ inputs:
|
|||||||
libtiff-devel
|
libtiff-devel
|
||||||
libwebp-devel
|
libwebp-devel
|
||||||
libxml2-devel
|
libxml2-devel
|
||||||
make
|
|
||||||
postgresql-devel
|
postgresql-devel
|
||||||
proj-devel
|
proj-devel
|
||||||
python3
|
|
||||||
sqlite-devel
|
sqlite-devel
|
||||||
tar
|
|
||||||
zlib-devel
|
zlib-devel
|
||||||
ubuntu-build-dependencies:
|
ubuntu-build-dependencies:
|
||||||
default: >-
|
default: >-
|
||||||
@ -196,9 +188,9 @@ inputs:
|
|||||||
lcov
|
lcov
|
||||||
memcached
|
memcached
|
||||||
mapnik-build-version-centos-stream:
|
mapnik-build-version-centos-stream:
|
||||||
default: 3.1.0
|
default: 4.0.0
|
||||||
mapnik-build-version-opensuse:
|
mapnik-build-version-opensuse:
|
||||||
default: 3.1.0
|
default: 4.0.0
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
@ -309,11 +301,15 @@ runs:
|
|||||||
if: (!matrix.mapnik_latest && startsWith(matrix.image, 'opensuse/'))
|
if: (!matrix.mapnik_latest && startsWith(matrix.image, 'opensuse/'))
|
||||||
|
|
||||||
- name: Build & Install latest `mapnik` (Debian/Ubuntu)
|
- name: Build & Install latest `mapnik` (Debian/Ubuntu)
|
||||||
uses: ./.github/actions/dependencies/build-and-install/mapnik/latest
|
uses: ./.github/actions/dependencies/build-and-install/mapnik
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
if: |
|
if: |
|
||||||
matrix.mapnik_latest &&
|
matrix.mapnik_latest &&
|
||||||
(startsWith(matrix.image, 'debian:') || startsWith(matrix.image, 'ubuntu:') || runner.os == 'Linux')
|
(startsWith(matrix.image, 'debian:') || startsWith(matrix.image, 'ubuntu:') || runner.os == 'Linux')
|
||||||
|
|
||||||
- name: Build & Install latest `mapnik` (openSUSE)
|
- name: Build & Install latest `mapnik` (openSUSE)
|
||||||
uses: ./.github/actions/dependencies/build-and-install/mapnik/latest
|
uses: ./.github/actions/dependencies/build-and-install/mapnik
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
if: (matrix.mapnik_latest && startsWith(matrix.image, 'opensuse/'))
|
if: (matrix.mapnik_latest && startsWith(matrix.image, 'opensuse/'))
|
||||||
|
@ -16,9 +16,10 @@ AC_CONFIG_HEADERS([includes/config.h])
|
|||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
# Checks for programs.
|
# Checks for programs.
|
||||||
AC_PROG_CXX
|
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AC_PROG_CC_C99
|
AC_PROG_CC_C99
|
||||||
|
AC_PROG_CXX
|
||||||
|
AC_PROG_RANLIB
|
||||||
|
|
||||||
dnl Find C++ compiler
|
dnl Find C++ compiler
|
||||||
AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
|
AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
|
||||||
|
@ -40,9 +40,9 @@ RUN export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
|||||||
-DENABLE_TESTS:BOOL=ON && \
|
-DENABLE_TESTS:BOOL=ON && \
|
||||||
cmake --build .
|
cmake --build .
|
||||||
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mod_tile && \
|
ctest --output-on-failure
|
||||||
ctest --output-on-failure && \
|
RUN export DESTDIR=/tmp/mod_tile && \
|
||||||
(cmake --install . --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Runner
|
# Runner
|
||||||
FROM archlinux:latest as runner
|
FROM archlinux:latest as runner
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Arguments
|
# Arguments
|
||||||
ARG centos_stream_version
|
ARG centos_stream_version=9
|
||||||
ARG extra_repository
|
ARG extra_repository=crb
|
||||||
ARG mapnik_version=3.1.0
|
ARG mapnik_version=4.0.0
|
||||||
|
|
||||||
# Mapnik Builder
|
# Mapnik Builder
|
||||||
FROM quay.io/centos/centos:stream${centos_stream_version} as mapnik-builder
|
FROM quay.io/centos/centos:stream${centos_stream_version} as mapnik-builder
|
||||||
@ -16,18 +16,18 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
boost-devel \
|
boost-devel \
|
||||||
bzip2 \
|
|
||||||
cairo-devel \
|
cairo-devel \
|
||||||
|
cmake \
|
||||||
freetype-devel \
|
freetype-devel \
|
||||||
gcc \
|
gcc \
|
||||||
gcc-c++ \
|
gcc-c++ \
|
||||||
gdal-devel \
|
gdal-devel \
|
||||||
|
git \
|
||||||
harfbuzz-devel \
|
harfbuzz-devel \
|
||||||
libicu-devel \
|
libicu-devel \
|
||||||
libjpeg-devel \
|
libjpeg-devel \
|
||||||
@ -36,48 +36,38 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
libwebp-devel \
|
libwebp-devel \
|
||||||
libxml2-devel \
|
libxml2-devel \
|
||||||
make \
|
make \
|
||||||
patch \
|
|
||||||
postgresql-devel \
|
postgresql-devel \
|
||||||
proj-devel \
|
proj-devel \
|
||||||
python3 \
|
|
||||||
sqlite-devel \
|
sqlite-devel \
|
||||||
tar \
|
|
||||||
zlib-devel
|
zlib-devel
|
||||||
|
|
||||||
## Download, Build & Install `Mapnik`
|
## Download, Build & Install `Mapnik`
|
||||||
WORKDIR /tmp/mapnik_src
|
WORKDIR /tmp/mapnik_src
|
||||||
RUN --mount=id=centos:stream${centos_stream_version}-mapnik:${mapnik_version},target=/tmp/mapnik_src,type=cache \
|
RUN --mount=id=centos:stream${centos_stream_version}-mapnik-src:${mapnik_version},target=/tmp/mapnik_src,type=cache \
|
||||||
export DESTDIR="/tmp/mapnik"; \
|
if [ ! -f CMakeLists.txt ]; then \
|
||||||
export GDAL_DATA="$(gdal-config --datadir)"; \
|
git clone --branch v${mapnik_version} --depth 1 --jobs 8 --recurse-submodules https://github.com/mapnik/mapnik.git /tmp/mapnik_src; \
|
||||||
export JOBS="$(nproc)"; \
|
fi
|
||||||
export PROJ_LIB="/usr/share/proj"; \
|
WORKDIR /tmp/mapnik_build
|
||||||
export PYTHON="python3"; \
|
RUN --mount=id=centos:stream${centos_stream_version}-mapnik-src:${mapnik_version},target=/tmp/mapnik_src,type=cache \
|
||||||
mkdir --parents ${GDAL_DATA} ${PROJ_LIB}; \
|
--mount=id=centos:stream${centos_stream_version}-mapnik-build:${mapnik_version},target=/tmp/mapnik_build,type=cache \
|
||||||
if [ ! -f SConstruct ]; then \
|
export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
||||||
curl --silent --location https://github.com/mapnik/mapnik/releases/download/v${mapnik_version}/mapnik-v${mapnik_version}.tar.bz2 \
|
export DESTDIR=/tmp/mapnik && \
|
||||||
| tar --extract --bzip2 --strip-components=1 --file=-; \
|
cmake -B . -S /tmp/mapnik_src \
|
||||||
curl --silent --location https://github.com/mapnik/mapnik/commit/8944e81367d2b3b91a41e24116e1813c01491e5d.patch \
|
-DBUILD_BENCHMARK:BOOL=OFF \
|
||||||
| patch -Np1; \
|
-DBUILD_DEMO_CPP:BOOL=OFF \
|
||||||
curl --silent --location https://github.com/mapnik/mapnik/commit/83779b7b6bdd229740b1b5e12a4a8fe27114cb7d.patch \
|
-DBUILD_DEMO_VIEWER:BOOL=OFF \
|
||||||
| patch -F3 -Np1; \
|
-DBUILD_TESTING:BOOL=OFF \
|
||||||
fi; \
|
-DBUILD_UTILITY_GEOMETRY_TO_WKB:BOOL=OFF \
|
||||||
bash configure \
|
-DBUILD_UTILITY_MAPNIK_INDEX:BOOL=OFF \
|
||||||
CPP_TESTS=False \
|
-DBUILD_UTILITY_MAPNIK_RENDER:BOOL=OFF \
|
||||||
CUSTOM_CFLAGS="${CUSTOM_CFLAGS:-}" \
|
-DBUILD_UTILITY_OGRINDEX:BOOL=OFF \
|
||||||
CUSTOM_CXXFLAGS="${CUSTOM_CXXFLAGS:-}" \
|
-DBUILD_UTILITY_PGSQL2SQLITE:BOOL=OFF \
|
||||||
CUSTOM_DEFINES="${CUSTOM_DEFINES:-}" \
|
-DBUILD_UTILITY_SHAPEINDEX:BOOL=OFF \
|
||||||
CUSTOM_LDFLAGS="${CUSTOM_LDFLAGS:-}" \
|
-DBUILD_UTILITY_SVG2PNG:BOOL=OFF \
|
||||||
DEMO=False \
|
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||||
DESTDIR="${DESTDIR}" \
|
-DCMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||||
FAST=True \
|
cmake --build . && \
|
||||||
INPUT_PLUGINS=all \
|
cmake --install . --strip
|
||||||
LIBDIR_SCHEMA=lib64 \
|
|
||||||
OPTIMIZATION=2 \
|
|
||||||
PREFIX=/usr \
|
|
||||||
SVG2PNG=True \
|
|
||||||
XMLPARSER=libxml2 && \
|
|
||||||
make PYTHON="${PYTHON}" && \
|
|
||||||
make install PYTHON="${PYTHON}"
|
|
||||||
|
|
||||||
# Builder
|
# Builder
|
||||||
FROM quay.io/centos/centos:stream${centos_stream_version} as builder
|
FROM quay.io/centos/centos:stream${centos_stream_version} as builder
|
||||||
@ -91,14 +81,14 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
boost-devel \
|
boost-devel \
|
||||||
cairo-devel \
|
cairo-devel \
|
||||||
cmake \
|
cmake \
|
||||||
|
freetype-devel \
|
||||||
gcc \
|
gcc \
|
||||||
gcc-c++ \
|
gcc-c++ \
|
||||||
gdal \
|
gdal \
|
||||||
@ -108,14 +98,17 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
iniparser-devel \
|
iniparser-devel \
|
||||||
libcurl-devel \
|
libcurl-devel \
|
||||||
libicu-devel \
|
libicu-devel \
|
||||||
libjpeg \
|
libjpeg-devel \
|
||||||
libmemcached-devel \
|
libmemcached-devel \
|
||||||
|
libpng-devel \
|
||||||
librados2-devel \
|
librados2-devel \
|
||||||
libtiff \
|
libtiff-devel \
|
||||||
libwebp \
|
libwebp-devel \
|
||||||
|
libxml2-devel \
|
||||||
make \
|
make \
|
||||||
|
pkg-config \
|
||||||
procps \
|
procps \
|
||||||
proj
|
proj-devel
|
||||||
|
|
||||||
## Copy files from builder(s)
|
## Copy files from builder(s)
|
||||||
### Mapnik
|
### Mapnik
|
||||||
@ -134,9 +127,9 @@ RUN export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
|||||||
-DENABLE_TESTS:BOOL=ON && \
|
-DENABLE_TESTS:BOOL=ON && \
|
||||||
cmake --build .
|
cmake --build .
|
||||||
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mod_tile && \
|
ctest --output-on-failure
|
||||||
ctest --output-on-failure && \
|
RUN export DESTDIR=/tmp/mod_tile && \
|
||||||
(cmake --install . --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Runner
|
# Runner
|
||||||
FROM quay.io/centos/centos:stream${centos_stream_version} as runner
|
FROM quay.io/centos/centos:stream${centos_stream_version} as runner
|
||||||
@ -150,13 +143,10 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
boost-filesystem \
|
|
||||||
boost-program-options \
|
|
||||||
boost-regex \
|
boost-regex \
|
||||||
cairo \
|
cairo \
|
||||||
gdal \
|
gdal \
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# Arguments
|
# Arguments
|
||||||
ARG centos_stream_version
|
ARG centos_stream_version=9
|
||||||
ARG extra_repository
|
ARG extra_repository=crb
|
||||||
ARG mapnik_version=3.1.0
|
ARG mapnik_version=4.0.0
|
||||||
|
|
||||||
# Mapnik Builder
|
# Mapnik Builder
|
||||||
FROM quay.io/centos/centos:stream${centos_stream_version} as mapnik-builder
|
FROM quay.io/centos/centos:stream${centos_stream_version} as mapnik-builder
|
||||||
@ -16,18 +16,18 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
boost-devel \
|
boost-devel \
|
||||||
bzip2 \
|
|
||||||
cairo-devel \
|
cairo-devel \
|
||||||
|
cmake \
|
||||||
freetype-devel \
|
freetype-devel \
|
||||||
gcc \
|
gcc \
|
||||||
gcc-c++ \
|
gcc-c++ \
|
||||||
gdal-devel \
|
gdal-devel \
|
||||||
|
git \
|
||||||
harfbuzz-devel \
|
harfbuzz-devel \
|
||||||
libicu-devel \
|
libicu-devel \
|
||||||
libjpeg-devel \
|
libjpeg-devel \
|
||||||
@ -36,48 +36,38 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
libwebp-devel \
|
libwebp-devel \
|
||||||
libxml2-devel \
|
libxml2-devel \
|
||||||
make \
|
make \
|
||||||
patch \
|
|
||||||
postgresql-devel \
|
postgresql-devel \
|
||||||
proj-devel \
|
proj-devel \
|
||||||
python3 \
|
|
||||||
sqlite-devel \
|
sqlite-devel \
|
||||||
tar \
|
|
||||||
zlib-devel
|
zlib-devel
|
||||||
|
|
||||||
## Download, Build & Install `Mapnik`
|
## Download, Build & Install `Mapnik`
|
||||||
WORKDIR /tmp/mapnik_src
|
WORKDIR /tmp/mapnik_src
|
||||||
RUN --mount=id=centos:stream${centos_stream_version}-mapnik:${mapnik_version},target=/tmp/mapnik_src,type=cache \
|
RUN --mount=id=centos:stream${centos_stream_version}-mapnik-src:${mapnik_version},target=/tmp/mapnik_src,type=cache \
|
||||||
export DESTDIR="/tmp/mapnik"; \
|
if [ ! -f CMakeLists.txt ]; then \
|
||||||
export GDAL_DATA="$(gdal-config --datadir)"; \
|
git clone --branch v${mapnik_version} --depth 1 --jobs 8 --recurse-submodules https://github.com/mapnik/mapnik.git /tmp/mapnik_src; \
|
||||||
export JOBS="$(nproc)"; \
|
fi
|
||||||
export PROJ_LIB="/usr/share/proj"; \
|
WORKDIR /tmp/mapnik_build
|
||||||
export PYTHON="python3"; \
|
RUN --mount=id=centos:stream${centos_stream_version}-mapnik-src:${mapnik_version},target=/tmp/mapnik_src,type=cache \
|
||||||
mkdir --parents ${GDAL_DATA} ${PROJ_LIB}; \
|
--mount=id=centos:stream${centos_stream_version}-mapnik-build:${mapnik_version},target=/tmp/mapnik_build,type=cache \
|
||||||
if [ ! -f SConstruct ]; then \
|
export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
||||||
curl --silent --location https://github.com/mapnik/mapnik/releases/download/v${mapnik_version}/mapnik-v${mapnik_version}.tar.bz2 \
|
export DESTDIR=/tmp/mapnik && \
|
||||||
| tar --extract --bzip2 --strip-components=1 --file=-; \
|
cmake -B . -S /tmp/mapnik_src \
|
||||||
curl --silent --location https://github.com/mapnik/mapnik/commit/8944e81367d2b3b91a41e24116e1813c01491e5d.patch \
|
-DBUILD_BENCHMARK:BOOL=OFF \
|
||||||
| patch -Np1; \
|
-DBUILD_DEMO_CPP:BOOL=OFF \
|
||||||
curl --silent --location https://github.com/mapnik/mapnik/commit/83779b7b6bdd229740b1b5e12a4a8fe27114cb7d.patch \
|
-DBUILD_DEMO_VIEWER:BOOL=OFF \
|
||||||
| patch -F3 -Np1; \
|
-DBUILD_TESTING:BOOL=OFF \
|
||||||
fi; \
|
-DBUILD_UTILITY_GEOMETRY_TO_WKB:BOOL=OFF \
|
||||||
bash configure \
|
-DBUILD_UTILITY_MAPNIK_INDEX:BOOL=OFF \
|
||||||
CPP_TESTS=False \
|
-DBUILD_UTILITY_MAPNIK_RENDER:BOOL=OFF \
|
||||||
CUSTOM_CFLAGS="${CUSTOM_CFLAGS:-}" \
|
-DBUILD_UTILITY_OGRINDEX:BOOL=OFF \
|
||||||
CUSTOM_CXXFLAGS="${CUSTOM_CXXFLAGS:-}" \
|
-DBUILD_UTILITY_PGSQL2SQLITE:BOOL=OFF \
|
||||||
CUSTOM_DEFINES="${CUSTOM_DEFINES:-}" \
|
-DBUILD_UTILITY_SHAPEINDEX:BOOL=OFF \
|
||||||
CUSTOM_LDFLAGS="${CUSTOM_LDFLAGS:-}" \
|
-DBUILD_UTILITY_SVG2PNG:BOOL=OFF \
|
||||||
DEMO=False \
|
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||||
DESTDIR="${DESTDIR}" \
|
-DCMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||||
FAST=True \
|
cmake --build . && \
|
||||||
INPUT_PLUGINS=all \
|
cmake --install . --strip
|
||||||
LIBDIR_SCHEMA=lib64 \
|
|
||||||
OPTIMIZATION=2 \
|
|
||||||
PREFIX=/usr \
|
|
||||||
SVG2PNG=True \
|
|
||||||
XMLPARSER=libxml2 && \
|
|
||||||
make PYTHON="${PYTHON}" && \
|
|
||||||
make install PYTHON="${PYTHON}"
|
|
||||||
|
|
||||||
# Builder
|
# Builder
|
||||||
FROM quay.io/centos/centos:stream${centos_stream_version} as builder
|
FROM quay.io/centos/centos:stream${centos_stream_version} as builder
|
||||||
@ -91,8 +81,7 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
@ -116,8 +105,7 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
libxml2-devel \
|
libxml2-devel \
|
||||||
make \
|
make \
|
||||||
proj-devel \
|
proj-devel \
|
||||||
redhat-rpm-config \
|
redhat-rpm-config
|
||||||
sqlite-devel
|
|
||||||
|
|
||||||
## Copy files from builder(s)
|
## Copy files from builder(s)
|
||||||
### Mapnik
|
### Mapnik
|
||||||
@ -144,13 +132,10 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
boost-filesystem \
|
|
||||||
boost-program-options \
|
|
||||||
boost-regex \
|
boost-regex \
|
||||||
cairo \
|
cairo \
|
||||||
gdal \
|
gdal \
|
||||||
@ -178,7 +163,7 @@ COPY --from=builder \
|
|||||||
|
|
||||||
## Fix mapnik directories
|
## Fix mapnik directories
|
||||||
RUN sed \
|
RUN sed \
|
||||||
--expression "s#/usr/lib/mapnik/3.1/input#$(find /usr -mindepth 1 -type d -name input)#g" \
|
--expression "s#/usr/lib/mapnik/3.1/input#$(find /usr -mindepth 1 -type d -name input | grep mapnik)#g" \
|
||||||
--expression "s#/usr/share/fonts/truetype#/usr/share/fonts#g" \
|
--expression "s#/usr/share/fonts/truetype#/usr/share/fonts#g" \
|
||||||
/usr/local/etc/renderd.conf > /etc/renderd.conf
|
/usr/local/etc/renderd.conf > /etc/renderd.conf
|
||||||
|
|
||||||
|
@ -14,13 +14,11 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
boost-devel \
|
boost-devel \
|
||||||
bzip2 \
|
|
||||||
cairo-devel \
|
cairo-devel \
|
||||||
cmake \
|
cmake \
|
||||||
freetype-devel \
|
freetype-devel \
|
||||||
@ -36,12 +34,9 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
libwebp-devel \
|
libwebp-devel \
|
||||||
libxml2-devel \
|
libxml2-devel \
|
||||||
make \
|
make \
|
||||||
patch \
|
|
||||||
postgresql-devel \
|
postgresql-devel \
|
||||||
proj-devel \
|
proj-devel \
|
||||||
python3 \
|
|
||||||
sqlite-devel \
|
sqlite-devel \
|
||||||
tar \
|
|
||||||
zlib-devel
|
zlib-devel
|
||||||
|
|
||||||
## Download, Build & Install `Mapnik`
|
## Download, Build & Install `Mapnik`
|
||||||
@ -56,14 +51,21 @@ RUN --mount=id=centos:stream${centos_stream_version}-mapnik-src:latest,target=/t
|
|||||||
export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mapnik && \
|
export DESTDIR=/tmp/mapnik && \
|
||||||
cmake -B . -S /tmp/mapnik_src \
|
cmake -B . -S /tmp/mapnik_src \
|
||||||
|
-DBUILD_BENCHMARK:BOOL=OFF \
|
||||||
|
-DBUILD_DEMO_CPP:BOOL=OFF \
|
||||||
-DBUILD_DEMO_VIEWER:BOOL=OFF \
|
-DBUILD_DEMO_VIEWER:BOOL=OFF \
|
||||||
-DBUILD_TESTING:BOOL=OFF \
|
-DBUILD_TESTING:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_GEOMETRY_TO_WKB:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_MAPNIK_INDEX:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_MAPNIK_RENDER:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_OGRINDEX:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_PGSQL2SQLITE:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_SHAPEINDEX:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_SVG2PNG:BOOL=OFF \
|
||||||
-DCMAKE_BUILD_TYPE:STRING=Release \
|
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||||
-DCMAKE_CXX_STANDARD:STRING=17 \
|
-DCMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
|
|
||||||
-DMAPNIK_PKGCONF_DIR:PATH=/usr/share/pkgconfig && \
|
|
||||||
cmake --build . && \
|
cmake --build . && \
|
||||||
(cmake --install . --prefix /usr --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Builder
|
# Builder
|
||||||
FROM quay.io/centos/centos:stream${centos_stream_version} as builder
|
FROM quay.io/centos/centos:stream${centos_stream_version} as builder
|
||||||
@ -77,8 +79,7 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
@ -124,9 +125,9 @@ RUN export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
|||||||
-DENABLE_TESTS:BOOL=ON && \
|
-DENABLE_TESTS:BOOL=ON && \
|
||||||
cmake --build .
|
cmake --build .
|
||||||
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mod_tile && \
|
ctest --output-on-failure
|
||||||
ctest --output-on-failure && \
|
RUN export DESTDIR=/tmp/mod_tile && \
|
||||||
(cmake --install . --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Runner
|
# Runner
|
||||||
FROM quay.io/centos/centos:stream${centos_stream_version} as runner
|
FROM quay.io/centos/centos:stream${centos_stream_version} as runner
|
||||||
@ -140,8 +141,7 @@ RUN --mount=id=centos:stream${centos_stream_version}-/var/cache/dnf,target=/var/
|
|||||||
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
echo "install_weak_deps=False" >> /etc/dnf/dnf.conf && \
|
||||||
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
echo "keepcache=True" >> /etc/dnf/dnf.conf && \
|
||||||
dnf --assumeyes install "dnf-command(config-manager)" && \
|
dnf --assumeyes install "dnf-command(config-manager)" && \
|
||||||
dnf config-manager --save \
|
dnf config-manager --save --setopt=${extra_repository}.enabled=1 && \
|
||||||
--setopt=${extra_repository}.enabled=1 && \
|
|
||||||
dnf --assumeyes install epel-release && \
|
dnf --assumeyes install epel-release && \
|
||||||
dnf --assumeyes upgrade && \
|
dnf --assumeyes upgrade && \
|
||||||
dnf --assumeyes install \
|
dnf --assumeyes install \
|
||||||
|
@ -44,9 +44,9 @@ RUN export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
|||||||
-DENABLE_TESTS:BOOL=ON && \
|
-DENABLE_TESTS:BOOL=ON && \
|
||||||
cmake --build .
|
cmake --build .
|
||||||
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mod_tile && \
|
ctest --output-on-failure
|
||||||
ctest --output-on-failure && \
|
RUN export DESTDIR=/tmp/mod_tile && \
|
||||||
(cmake --install . --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Runner
|
# Runner
|
||||||
FROM debian:${debian_version} as runner
|
FROM debian:${debian_version} as runner
|
||||||
|
@ -73,7 +73,7 @@ COPY --from=builder \
|
|||||||
|
|
||||||
## Fix mapnik directories
|
## Fix mapnik directories
|
||||||
RUN sed \
|
RUN sed \
|
||||||
--expression "s#/usr/lib/mapnik/3.1/input#$(find /usr -mindepth 1 -type d -name input)#g" \
|
--expression "s#/usr/lib/mapnik/3.1/input#$(find /usr -mindepth 1 -type d -name input | grep mapnik)#g" \
|
||||||
--expression "s#/usr/share/fonts/truetype#/usr/share/fonts#g" \
|
--expression "s#/usr/share/fonts/truetype#/usr/share/fonts#g" \
|
||||||
/usr/local/etc/renderd.conf > /etc/renderd.conf
|
/usr/local/etc/renderd.conf > /etc/renderd.conf
|
||||||
|
|
||||||
|
@ -38,9 +38,9 @@ RUN export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
|||||||
-DENABLE_TESTS:BOOL=ON && \
|
-DENABLE_TESTS:BOOL=ON && \
|
||||||
cmake --build .
|
cmake --build .
|
||||||
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mod_tile && \
|
ctest --output-on-failure
|
||||||
ctest --output-on-failure && \
|
RUN export DESTDIR=/tmp/mod_tile && \
|
||||||
(cmake --install . --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Runner
|
# Runner
|
||||||
FROM fedora:${fedora_version} as runner
|
FROM fedora:${fedora_version} as runner
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
# Arguments
|
# Arguments
|
||||||
ARG boost_version
|
ARG boost_version
|
||||||
ARG gcc_version
|
ARG gcc_version
|
||||||
|
ARG mapnik_version=4.0.0
|
||||||
ARG opensuse_version=leap:15
|
ARG opensuse_version=leap:15
|
||||||
|
|
||||||
# Mapnik Builder
|
# Mapnik Builder
|
||||||
@ -9,10 +10,11 @@ FROM opensuse/${opensuse_version} as mapnik-builder
|
|||||||
## Arguments
|
## Arguments
|
||||||
ARG boost_version
|
ARG boost_version
|
||||||
ARG gcc_version
|
ARG gcc_version
|
||||||
|
ARG mapnik_version
|
||||||
ARG opensuse_version
|
ARG opensuse_version
|
||||||
|
|
||||||
## Install mapnik-builder dependencies
|
## Install mapnik-builder dependencies
|
||||||
RUN --mount=id=opensuse:${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp,type=cache,sharing=locked \
|
RUN --mount=id=opensuse/${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp,type=cache,sharing=locked \
|
||||||
zypper modifyrepo --all --keep-packages && \
|
zypper modifyrepo --all --keep-packages && \
|
||||||
zypper --non-interactive update && \
|
zypper --non-interactive update && \
|
||||||
zypper --non-interactive install \
|
zypper --non-interactive install \
|
||||||
@ -24,12 +26,7 @@ RUN --mount=id=opensuse:${opensuse_version}-/var/cache/zypp,target=/var/cache/zy
|
|||||||
gdal-devel \
|
gdal-devel \
|
||||||
git \
|
git \
|
||||||
harfbuzz-devel \
|
harfbuzz-devel \
|
||||||
libboost_atomic${boost_version}-devel \
|
|
||||||
libboost_filesystem${boost_version}-devel \
|
|
||||||
libboost_headers${boost_version}-devel \
|
|
||||||
libboost_program_options${boost_version}-devel \
|
|
||||||
libboost_regex${boost_version}-devel \
|
libboost_regex${boost_version}-devel \
|
||||||
libboost_system${boost_version}-devel \
|
|
||||||
libicu-devel \
|
libicu-devel \
|
||||||
libjpeg8-devel \
|
libjpeg8-devel \
|
||||||
libpng16-devel \
|
libpng16-devel \
|
||||||
@ -38,9 +35,7 @@ RUN --mount=id=opensuse:${opensuse_version}-/var/cache/zypp,target=/var/cache/zy
|
|||||||
libxml2-devel \
|
libxml2-devel \
|
||||||
postgresql-devel \
|
postgresql-devel \
|
||||||
proj-devel \
|
proj-devel \
|
||||||
python3 \
|
|
||||||
sqlite3-devel \
|
sqlite3-devel \
|
||||||
tar \
|
|
||||||
zlib-devel && \
|
zlib-devel && \
|
||||||
if [ -n "${gcc_version}" ]; then \
|
if [ -n "${gcc_version}" ]; then \
|
||||||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${gcc_version} 10; \
|
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${gcc_version} 10; \
|
||||||
@ -51,13 +46,13 @@ RUN --mount=id=opensuse:${opensuse_version}-/var/cache/zypp,target=/var/cache/zy
|
|||||||
|
|
||||||
## Download, Build & Install `Mapnik`
|
## Download, Build & Install `Mapnik`
|
||||||
WORKDIR /tmp/mapnik_src
|
WORKDIR /tmp/mapnik_src
|
||||||
RUN --mount=id=opensuse:${opensuse_version}-mapnik-src:latest,target=/tmp/mapnik_src,type=cache \
|
RUN --mount=id=opensuse/${opensuse_version}-mapnik-src:${mapnik_version},target=/tmp/mapnik_src,type=cache \
|
||||||
if [ ! -f CMakeLists.txt ]; then \
|
if [ ! -f CMakeLists.txt ]; then \
|
||||||
git clone --depth 1 --jobs 8 --recurse-submodules https://github.com/mapnik/mapnik.git /tmp/mapnik_src; \
|
git clone --branch v${mapnik_version} --depth 1 --jobs 8 --recurse-submodules https://github.com/mapnik/mapnik.git /tmp/mapnik_src; \
|
||||||
fi
|
fi
|
||||||
WORKDIR /tmp/mapnik_build
|
WORKDIR /tmp/mapnik_build
|
||||||
RUN --mount=id=opensuse:${opensuse_version}-mapnik-src:latest,target=/tmp/mapnik_src,type=cache \
|
RUN --mount=id=opensuse/${opensuse_version}-mapnik-src:${mapnik_version},target=/tmp/mapnik_src,type=cache \
|
||||||
--mount=id=opensuse:${opensuse_version}-mapnik-build:latest,target=/tmp/mapnik_build,type=cache \
|
--mount=id=opensuse/${opensuse_version}-mapnik-build:${mapnik_version},target=/tmp/mapnik_build,type=cache \
|
||||||
export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mapnik && \
|
export DESTDIR=/tmp/mapnik && \
|
||||||
cmake -B . -S /tmp/mapnik_src \
|
cmake -B . -S /tmp/mapnik_src \
|
||||||
@ -65,12 +60,17 @@ RUN --mount=id=opensuse:${opensuse_version}-mapnik-src:latest,target=/tmp/mapnik
|
|||||||
-DBUILD_DEMO_CPP:BOOL=OFF \
|
-DBUILD_DEMO_CPP:BOOL=OFF \
|
||||||
-DBUILD_DEMO_VIEWER:BOOL=OFF \
|
-DBUILD_DEMO_VIEWER:BOOL=OFF \
|
||||||
-DBUILD_TESTING:BOOL=OFF \
|
-DBUILD_TESTING:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_GEOMETRY_TO_WKB:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_MAPNIK_INDEX:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_MAPNIK_RENDER:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_OGRINDEX:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_PGSQL2SQLITE:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_SHAPEINDEX:BOOL=OFF \
|
||||||
|
-DBUILD_UTILITY_SVG2PNG:BOOL=OFF \
|
||||||
-DCMAKE_BUILD_TYPE:STRING=Release \
|
-DCMAKE_BUILD_TYPE:STRING=Release \
|
||||||
-DCMAKE_CXX_STANDARD:STRING=17 \
|
-DCMAKE_INSTALL_PREFIX:PATH=/usr && \
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
|
|
||||||
-DMAPNIK_PKGCONF_DIR:PATH=/usr/share/pkgconfig && \
|
|
||||||
cmake --build . && \
|
cmake --build . && \
|
||||||
(cmake --install . --prefix /usr --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Builder
|
# Builder
|
||||||
FROM opensuse/${opensuse_version} as builder
|
FROM opensuse/${opensuse_version} as builder
|
||||||
@ -80,7 +80,7 @@ ARG boost_version
|
|||||||
ARG opensuse_version
|
ARG opensuse_version
|
||||||
|
|
||||||
## Install builder dependencies
|
## Install builder dependencies
|
||||||
RUN --mount=id=opensuse:${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp,type=cache,sharing=locked \
|
RUN --mount=id=opensuse/${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp,type=cache,sharing=locked \
|
||||||
zypper modifyrepo --all --keep-packages && \
|
zypper modifyrepo --all --keep-packages && \
|
||||||
zypper --non-interactive update && \
|
zypper --non-interactive update && \
|
||||||
zypper --non-interactive install \
|
zypper --non-interactive install \
|
||||||
@ -93,12 +93,7 @@ RUN --mount=id=opensuse:${opensuse_version}-/var/cache/zypp,target=/var/cache/zy
|
|||||||
gdal \
|
gdal \
|
||||||
glib2-devel \
|
glib2-devel \
|
||||||
harfbuzz-devel \
|
harfbuzz-devel \
|
||||||
libboost_atomic${boost_version}-devel \
|
|
||||||
libboost_filesystem${boost_version}-devel \
|
|
||||||
libboost_headers${boost_version}-devel \
|
|
||||||
libboost_program_options${boost_version}-devel \
|
|
||||||
libboost_regex${boost_version}-devel \
|
libboost_regex${boost_version}-devel \
|
||||||
libboost_system${boost_version}-devel \
|
|
||||||
libcurl-devel \
|
libcurl-devel \
|
||||||
libicu-devel \
|
libicu-devel \
|
||||||
libiniparser-devel \
|
libiniparser-devel \
|
||||||
@ -131,9 +126,9 @@ RUN export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
|||||||
-DENABLE_TESTS:BOOL=ON && \
|
-DENABLE_TESTS:BOOL=ON && \
|
||||||
cmake --build .
|
cmake --build .
|
||||||
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mod_tile && \
|
ctest --output-on-failure
|
||||||
ctest --output-on-failure && \
|
RUN export DESTDIR=/tmp/mod_tile && \
|
||||||
(cmake --install . --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Runner
|
# Runner
|
||||||
FROM opensuse/${opensuse_version} as runner
|
FROM opensuse/${opensuse_version} as runner
|
||||||
@ -143,7 +138,7 @@ ARG boost_version
|
|||||||
ARG opensuse_version
|
ARG opensuse_version
|
||||||
|
|
||||||
## Install runner dependencies
|
## Install runner dependencies
|
||||||
RUN --mount=id=opensuse:${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp,type=cache,sharing=locked \
|
RUN --mount=id=opensuse/${opensuse_version}-/var/cache/zypp,target=/var/cache/zypp,type=cache,sharing=locked \
|
||||||
zypper modifyrepo --all --keep-packages && \
|
zypper modifyrepo --all --keep-packages && \
|
||||||
zypper --non-interactive update && \
|
zypper --non-interactive update && \
|
||||||
zypper --non-interactive install \
|
zypper --non-interactive install \
|
||||||
@ -152,11 +147,7 @@ RUN --mount=id=opensuse:${opensuse_version}-/var/cache/zypp,target=/var/cache/zy
|
|||||||
cairo-devel \
|
cairo-devel \
|
||||||
gdal \
|
gdal \
|
||||||
harfbuzz-devel \
|
harfbuzz-devel \
|
||||||
libboost_atomic${boost_version}-devel \
|
|
||||||
libboost_filesystem${boost_version}-devel \
|
|
||||||
libboost_program_options${boost_version}-devel \
|
|
||||||
libboost_regex${boost_version}-devel \
|
libboost_regex${boost_version}-devel \
|
||||||
libboost_system${boost_version}-devel \
|
|
||||||
libicu-devel \
|
libicu-devel \
|
||||||
libiniparser-devel \
|
libiniparser-devel \
|
||||||
libjpeg8-devel \
|
libjpeg8-devel \
|
||||||
|
@ -44,9 +44,9 @@ RUN export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) && \
|
|||||||
-DENABLE_TESTS:BOOL=ON && \
|
-DENABLE_TESTS:BOOL=ON && \
|
||||||
cmake --build .
|
cmake --build .
|
||||||
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
RUN export CTEST_PARALLEL_LEVEL=$(nproc) && \
|
||||||
export DESTDIR=/tmp/mod_tile && \
|
ctest --output-on-failure
|
||||||
ctest --output-on-failure && \
|
RUN export DESTDIR=/tmp/mod_tile && \
|
||||||
(cmake --install . --strip || make DESTDIR=${DESTDIR} install/strip)
|
cmake --install . --strip
|
||||||
|
|
||||||
# Runner
|
# Runner
|
||||||
FROM ubuntu:${ubuntu_version} as runner
|
FROM ubuntu:${ubuntu_version} as runner
|
||||||
|
@ -73,7 +73,7 @@ COPY --from=builder \
|
|||||||
|
|
||||||
## Fix mapnik directories
|
## Fix mapnik directories
|
||||||
RUN sed \
|
RUN sed \
|
||||||
--expression "s#/usr/lib/mapnik/3.1/input#$(find /usr -mindepth 1 -type d -name input)#g" \
|
--expression "s#/usr/lib/mapnik/3.1/input#$(find /usr -mindepth 1 -type d -name input | grep mapnik)#g" \
|
||||||
--expression "s#/usr/share/fonts/truetype#/usr/share/fonts#g" \
|
--expression "s#/usr/share/fonts/truetype#/usr/share/fonts#g" \
|
||||||
/usr/local/etc/renderd.conf > /etc/renderd.conf
|
/usr/local/etc/renderd.conf > /etc/renderd.conf
|
||||||
|
|
||||||
|
5
docs/build/building_on_opensuse.md
vendored
5
docs/build/building_on_opensuse.md
vendored
@ -28,12 +28,7 @@ sudo zypper --non-interactive install \
|
|||||||
gdal \
|
gdal \
|
||||||
glib2-devel \
|
glib2-devel \
|
||||||
harfbuzz-devel \
|
harfbuzz-devel \
|
||||||
libboost_atomic-devel \
|
|
||||||
libboost_filesystem-devel \
|
|
||||||
libboost_headers-devel \
|
|
||||||
libboost_program_options-devel \
|
|
||||||
libboost_regex-devel \
|
libboost_regex-devel \
|
||||||
libboost_system-devel \
|
|
||||||
libcurl-devel \
|
libcurl-devel \
|
||||||
libicu-devel \
|
libicu-devel \
|
||||||
libiniparser-devel \
|
libiniparser-devel \
|
||||||
|
Reference in New Issue
Block a user