# ArcGIS Maps SDK for Qt Installation FROM harbor.sl.defence-elec.de/proxydockerhub/library/ubuntu:26.04 ARG RME_USERPASS=ctc ARG RME_ADMINSRV=10.198.80.75 ARG RME_PROJECT=guez # Proxy configuration for air-gapped environments ARG http_proxy="http://10.198.80.130:3128" ARG no_proxy="localhost,127.0.0.1,defence-elec.de,.defence-elec.de,sl.defence-elec.de,10.198.80.0/23,192.168.133.0/24,141.200.0.0/16,10.184.0.0/15,10.199.101.35,10.199.101.36,10.199.101.158" ARG HTTP_PROXY=${http_proxy} ARG https_proxy=${http_proxy} ARG HTTPS_PROXY=${http_proxy} ARG NO_PROXY=${no_proxy} LABEL author="Legatus Team" LABEL project=${RME_PROJECT} LABEL version="300.0.0" LABEL description="ArcGIS Maps SDK for Qt 300.0.0" ENV DEBIAN_FRONTEND=noninteractive # OS and PATH configuration ENV LANG=C.UTF-8 \ LC_ALL=C.UTF-8 # Shell global auf Bash mit sicheren Pipes umstellen SHELL ["/bin/bash", "-o", "pipefail", "-c"] # Originale Repositories durch Nexus Proxies ersetzen RUN echo : > /etc/apt/sources.list && \ echo -e "Types: deb\n\ URIs: http://remote-repo.sl.defence-elec.de:8081/repository/ubuntu\n\ Suites: resolute resolute-updates resolute-backports\n\ Components: main restricted universe multiverse\n\ Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg\n\ \n\ Types: deb\n\ URIs: http://remote-repo.sl.defence-elec.de:8081/repository/ubuntu-security\n\ Suites: resolute-security\n\ Components: main restricted universe multiverse\n\ Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg\n\ \n\ Types: deb\n\ URIs: https://internal-repo.sl.defence-elec.de/repository/external-rpms\n\ Suites: general\n\ Components: main\n\ Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg" > /etc/apt/sources.list.d/ubuntu.sources # Create users (install openssl first for password hashing) RUN apt-get update && apt-get install -y openssl \ && groupadd ctc -g 1445 || true \ && groupadd rme -g 1001 || true \ && useradd -d /shd/CTC/TOOLS -u 1445 -g ctc -m -p $(openssl passwd -5 ${RME_USERPASS}) ctc || true \ && useradd -d /home/rme -u 1001 -g rme -m -p $(openssl passwd -5 ${RME_USERPASS}) rme || true \ && rm -rf /var/lib/apt/lists/* RUN curl -fsSL http://${RME_ADMINSRV}/rme/deb_and_rpm_signage_key.pub --output /etc/apt/keyrings/deb_and_rpm_signage_key.asc \ && curl -fsSL http://${RME_ADMINSRV}/rme/SL-Netz.crt --output /usr/local/share/ca-certificates/SL-Netz.crt \ && update-ca-certificates ARG ARCGIS_VERSION=300.0.0 # Install build dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential cmake git \ libqt6core6 libqt6gui6 libqt6widgets6 \ qt6-base-dev \ libarcgis-maps-sdk-qt-dev \ && rm -rf /var/lib/apt/lists/* # Set ArcGIS SDK path ENV ARCGIS_SDK_ROOT=/opt/ArcGIS/MapsSDK_Qt_300.0.0 ENV ARCGIS_SDK_DIR=/opt/ArcGIS/MapsSDK_Qt_300.0.0/qt300.0.0/sdk # LICENSE HANDLING: ArcGIS uses map-specific embedded licensing (no separate license file required) # Licenses are embedded in .ini files at Lts/Viewer/SituationMap/Map/*.ini (19 files) # Customer has lifetime license contract for air-gapped environment # DEB package installed from internal SCM repository # License strings are embedded in Qt application configuration files # Verify installation RUN test -d /opt/ArcGIS/MapsSDK_Qt_300.0.0/qt300.0.0/sdk USER ctc WORKDIR /shd/CTC/TOOLS CMD ["/bin/bash"]