2021-02-09 19:37:34 +01:00
2024-12-09 23:19:56 +01:00
ARG DISTRO_VERSION=24.04
2021-02-09 19:37:34 +01:00
2021-03-25 08:31:10 +01:00
# Oracle Docker image is too large, so we add as less dependencies as possible
# so there is enough space on GitHub runner
2021-07-19 09:57:53 +02:00
FROM ubuntu:${DISTRO_VERSION} as binary-for-oracle
2018-02-27 09:16:02 -09:00
MAINTAINER Denis Rouzaud <denis@opengis.ch>
2017-08-05 00:03:33 +02:00
2020-10-30 16:23:38 +01:00
LABEL Description="Docker container with QGIS dependencies" Vendor="QGIS.org" Version="1.0"
2017-08-05 00:03:33 +02:00
2018-02-27 09:16:02 -09:00
# && echo "deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu xenial main" >> /etc/apt/sources.list \
# && echo "deb-src http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu xenial main" >> /etc/apt/sources.list \
# && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 314DF160 \
2017-08-05 00:03:33 +02:00
RUN apt-get update \
&& apt-get install -y software-properties-common \
2024-12-09 23:19:56 +01:00
&& add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable \
2017-08-05 00:03:33 +02:00
&& apt-get update \
2020-10-30 16:23:38 +01:00
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
2018-10-09 09:01:50 +10:00
apt-transport-https \
2017-08-05 00:03:33 +02:00
ca-certificates \
2022-05-04 16:45:15 +02:00
clazy \
2018-02-27 09:16:02 -09:00
cmake \
2017-09-21 19:07:51 +02:00
curl \
2017-08-05 00:03:33 +02:00
dh-python \
2022-06-01 11:54:44 +02:00
git \
2017-08-05 00:03:33 +02:00
gdal-bin \
2023-11-02 05:05:02 +01:00
gnupg \
2021-08-03 06:17:44 +10:00
gpsbabel \
2017-08-05 00:03:33 +02:00
graphviz \
2024-12-09 23:19:56 +01:00
'libaio1|libaio1t64' \
'libdraco4|libdraco8' \
2021-03-17 13:20:14 +01:00
libexiv2-27 \
2024-12-09 23:19:56 +01:00
'libfcgi0ldbl|libfcgi0t64' \
2022-05-11 13:51:09 +10:00
libgsl27 \
2024-12-09 23:19:56 +01:00
'libprotobuf-lite17|libprotobuf-lite23|libprotobuf-lite32t64' \
2017-08-05 00:03:33 +02:00
libqca-qt5-2-plugins \
2020-10-30 16:23:38 +01:00
libqt53dextras5 \
2018-02-27 09:16:02 -09:00
libqt53drender5 \
2024-12-09 23:19:56 +01:00
'libqt5concurrent5|libqt5concurrent5t64' \
2021-03-17 13:20:14 +01:00
libqt5keychain1 \
2018-04-26 13:33:48 +02:00
libqt5positioning5 \
2023-01-25 16:15:32 +07:00
libqt5multimedia5 \
libqt5multimediawidgets5 \
2018-04-26 13:33:48 +02:00
libqt5qml5 \
libqt5quick5 \
libqt5quickcontrols2-5 \
2021-03-17 13:20:14 +01:00
libqt5quickwidgets5 \
libqt5serialport5 \
2018-10-09 09:01:50 +10:00
libqt5sql5-odbc \
2017-08-05 00:03:33 +02:00
libqt5sql5-sqlite \
2024-12-09 23:19:56 +01:00
'libqt5xml5|libqt5xml5t64' \
2021-03-17 13:20:14 +01:00
libqt5webkit5 \
libqwt-qt5-6 \
libspatialindex6 \
2017-08-05 00:03:33 +02:00
libsqlite3-mod-spatialite \
2024-12-09 23:19:56 +01:00
'libzip4|libzip5|libzip4t64' \
2017-08-05 00:03:33 +02:00
lighttpd \
locales \
2021-02-10 14:41:04 +10:00
pdal \
2017-08-05 00:03:33 +02:00
poppler-utils \
python3-future \
python3-gdal \
python3-mock \
python3-nose2 \
2024-12-09 23:19:56 +01:00
python3-numpy \
2020-11-13 04:36:06 +10:00
python3-owslib \
2017-08-05 00:03:33 +02:00
python3-pip \
python3-psycopg2 \
2020-11-05 15:04:25 +01:00
python3-pyproj \
2017-08-05 00:03:33 +02:00
python3-pyqt5 \
python3-pyqt5.qsci \
python3-pyqt5.qtsql \
python3-pyqt5.qtsvg \
2021-03-09 10:39:52 +10:00
python3-pyqt5.qtwebkit \
2021-06-15 07:03:25 +02:00
python3-pyqt5.qtpositioning \
2023-01-25 16:15:32 +07:00
python3-pyqt5.qtmultimedia \
2024-02-06 07:53:11 +01:00
python3-pyqt5.qtserialport \
2017-08-05 00:03:33 +02:00
python3-sip \
python3-termcolor \
python3-yaml \
2022-04-19 10:30:37 +02:00
qpdf \
2018-02-27 09:16:02 -09:00
qt3d-assimpsceneimport-plugin \
qt3d-defaultgeometryloader-plugin \
qt3d-gltfsceneio-plugin \
qt3d-scene2d-plugin \
2021-03-15 10:06:37 +01:00
qt5-image-formats-plugins \
2018-04-09 11:46:24 +10:00
saga \
2020-09-15 09:41:12 +02:00
supervisor \
2019-11-04 17:51:17 +01:00
unzip \
2017-08-05 00:03:33 +02:00
xauth \
xfonts-100dpi \
xfonts-75dpi \
xfonts-base \
xfonts-scalable \
xvfb \
2018-11-13 12:50:53 +01:00
ocl-icd-libopencl1 \
2024-12-09 23:19:56 +01:00
&& pip3 install --break-system-packages \
2017-08-05 00:03:33 +02:00
numpy \
nose2 \
pyyaml \
mock \
future \
termcolor \
2017-10-27 05:08:42 -06:00
oauthlib \
2018-06-25 13:16:42 +02:00
pyopenssl \
2018-11-13 12:50:53 +01:00
pep8 \
pexpect \
capturer \
sphinx \
requests \
six \
2020-01-16 09:40:42 +01:00
hdbcli \
2018-02-27 09:16:02 -09:00
&& apt-get clean
2017-08-05 00:03:33 +02:00
2022-01-06 08:28:05 +01:00
# Node.js and Yarn for server landingpage webapp
2023-11-02 05:05:02 +01:00
RUN mkdir -p /etc/apt/keyrings
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
2024-12-11 22:48:58 +01:00
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
2023-11-02 05:05:02 +01:00
RUN apt-get update
2021-12-29 18:18:13 +01:00
RUN apt-get install -y nodejs
2022-01-01 09:46:24 +01:00
RUN corepack enable
2021-12-29 18:18:13 +01:00
2019-11-04 17:51:17 +01:00
# Oracle : client side
2024-12-11 22:17:17 +01:00
RUN curl https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-basic-linux.x64-21.16.0.0.0dbru.zip > instantclient-basic-linux.x64-21.16.0.0.0dbru.zip
RUN curl https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-sdk-linux.x64-21.16.0.0.0dbru.zip > instantclient-sdk-linux.x64-21.16.0.0.0dbru.zip
RUN curl https://download.oracle.com/otn_software/linux/instantclient/2116000/instantclient-sqlplus-linux.x64-21.16.0.0.0dbru.zip > instantclient-sqlplus-linux.x64-21.16.0.0.0dbru.zip
2019-11-04 17:51:17 +01:00
2024-12-11 22:17:17 +01:00
RUN unzip -n instantclient-basic-linux.x64-21.16.0.0.0dbru.zip
RUN unzip -n instantclient-sdk-linux.x64-21.16.0.0.0dbru.zip
RUN unzip -n instantclient-sqlplus-linux.x64-21.16.0.0.0dbru.zip
2019-11-04 17:51:17 +01:00
2024-12-11 22:17:17 +01:00
ENV PATH="/instantclient_21_16:${PATH}"
ENV LD_LIBRARY_PATH="/instantclient_21_16:${LD_LIBRARY_PATH}"
2024-12-13 08:55:01 +01:00
# workaround noble libaio SONAME issue -- see https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501
RUN if [ -e /usr/lib/x86_64-linux-gnu/libaio.so.1t64 ] ; then ln -sf /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 ; fi
2019-03-07 13:08:49 +01:00
2021-03-25 08:31:10 +01:00
# Avoid sqlcmd termination due to locale -- see https://github.com/Microsoft/mssql-docker/issues/163
RUN echo "nb_NO.UTF-8 UTF-8" > /etc/locale.gen
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
RUN locale-gen
RUN echo "alias python=python3" >> ~/.bash_aliases
FROM binary-for-oracle as binary-only
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
grass \
2021-06-14 00:04:41 +03:00
iproute2 \
2021-03-25 08:31:10 +01:00
postgresql-client \
spawn-fcgi \
2024-12-09 23:19:56 +01:00
&& pip3 install --break-system-packages \
2021-03-25 08:31:10 +01:00
psycopg2 \
&& apt-get clean
2020-01-16 09:40:42 +01:00
# HANA: client side
# Install hdbsql tool
2024-04-04 17:58:25 +02:00
RUN curl -j -k -L -H "Cookie: eula_3_2_agreed=tools.hana.ondemand.com/developer-license-3_2.txt" https://tools.hana.ondemand.com/additional/hanaclient-latest-linux-x64.tar.gz --output hanaclient-latest-linux-x64.tar.gz \
2020-08-28 11:54:18 +02:00
&& tar -xvf hanaclient-latest-linux-x64.tar.gz \
2020-01-16 09:40:42 +01:00
&& mkdir /usr/sap \
&& ./client/hdbinst -a client --sapmnt=/usr/sap \
&& rm -rf client \
&& rm hanaclient*
ENV PATH="/usr/sap/hdbclient:${PATH}"
2019-03-07 13:08:49 +01:00
# MSSQL: client side
2022-05-10 10:12:33 +10:00
# RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
# RUN curl https://packages.microsoft.com/config/ubuntu/19.04/prod.list | tee /etc/apt/sources.list.d/msprod.list
# RUN apt-get update
# RUN ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql17 mssql-tools
2019-03-07 13:08:49 +01:00
2021-03-17 13:20:14 +01:00
FROM binary-only
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
bison \
ccache \
clang \
cmake \
flex \
grass-dev \
2023-08-06 16:49:50 +10:00
libdraco-dev \
2021-03-17 13:20:14 +01:00
libexiv2-dev \
libexpat1-dev \
libfcgi-dev \
libgdal-dev \
libgeos-dev \
libgsl-dev \
libpdal-dev \
libpq-dev \
libproj-dev \
libprotobuf-dev \
libqca-qt5-2-dev \
libqt5opengl5-dev \
libqt5scintilla2-dev \
libqt5svg5-dev \
libqt5webkit5-dev \
libqt5serialport5-dev \
libqwt-qt5-dev \
libspatialindex-dev \
libspatialite-dev \
libsqlite3-dev \
libsqlite3-mod-spatialite \
libzip-dev \
libzstd-dev \
ninja-build \
protobuf-compiler \
pyqt5-dev \
pyqt5-dev-tools \
pyqt5.qsci-dev \
python3-all-dev \
python3-dev \
python3-sip-dev \
qt3d5-dev \
qt5keychain-dev \
qtbase5-dev \
qtdeclarative5-dev-tools \
qtpositioning5-dev \
2023-01-25 16:15:32 +07:00
qtmultimedia5-dev \
2021-03-17 13:20:14 +01:00
qttools5-dev \
qttools5-dev-tools \
qtbase5-private-dev \
opencl-headers \
ocl-icd-opencl-dev \
&& apt-get clean
2017-12-18 10:52:35 -04:00
ENV PATH="/usr/local/bin:${PATH}"
2021-02-01 09:11:15 +01:00
# environment variables shall be located in .docker/docker-variables.env