Files
qt6-migration-pipeline/external-dependencies/qt6-framework/AIRGAP-ADAPTATION.md
T
torstenandCopilot 49f31a3840 Add air-gap adaptation documentation for Qt6 framework
- Document key changes from public to air-gapped environment
- Include build instructions with proxy configuration
- Add verification commands and security considerations
- Reference related files and SBOM generation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Entire-Checkpoint: 01M6PCAZ0X5197XH30FG4FXHRE
2026-11-05 17:33:05 +00:00

2.9 KiB

Air-Gapped Environment Adaptation

This document summarizes the adaptations made to the Qt6 framework Dockerfile for air-gapped environments.

Key Changes from Public to Air-Gapped Environment

1. Repository Configuration

  • Before: Default Ubuntu repositories
  • After: Internal Nexus repositories
    • APT: http://remote-repo.sl.defence-elec.de:8081/repository/ubuntu
    • PyPI: http://remote-repo.sl.defence-elec.de:8081/repository/proxypipy/

2. Proxy Configuration

http_proxy="http://10.198.80.130:3128"
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"

3. Security Infrastructure

  • CA certificates installed from http://10.198.80.75/rme/SL-Netz.crt
  • APT signing keys from http://10.198.80.75/rme/deb_and_rpm_signage_key.pub

4. User Management

  • User ctc (uid 1445, gid 1445) with home /shd/CTC/TOOLS
  • User rme (uid 1001, gid 1001) with home /home/rme

5. Base Image

  • Before: ubuntu:26.04
  • After: harbor.sl.defence-elec.de/proxydockerhub/library/ubuntu:26.04

6. Python Environment

  • Uses Python virtual environment (/opt/venv) instead of system pip
  • Prevents conflicts with system packages
  • Ensures reproducible aqtinstall version

7. Runtime Mount Points

  • ArcGIS SDK: /opt/ArcGIS/MapsSDK_Qt_300.0.0 (via ARCGIS_SDK_ROOT)
  • RTI Connext DDS: /opt/RTI (via DDS_PATH)

Build Instructions

Standard Build

docker build -t legatus-qt6-framework:6.10.2 \
  --build-arg RME_USERPASS=your_password \
  external-dependencies/qt6-framework/

Air-Gapped Build with Proxy

docker build -t legatus-qt6-framework:6.10.2 \
  --build-arg RME_USERPASS=your_password \
  --build-arg http_proxy="http://10.198.80.130:3128" \
  --build-arg https_proxy="http://10.198.80.130:3128" \
  external-dependencies/qt6-framework/

Runtime Usage

docker run -it \
  -v /path/to/ArcGIS:/opt/ArcGIS \
  -v /path/to/rti:/opt/RTI \
  legatus-qt6-framework:6.10.2

Verification

After building, verify the installation:

docker run --rm legatus-qt6-framework:6.10.2 qmake6 --version
docker run --rm legatus-qt6-framework:6.10.2 cmake --find-package \
  -DNAME=Qt6 -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST

Security Considerations

  1. Password Management: Use Docker secrets or environment variables for RME_USERPASS
  2. Certificate Validation: Ensure CA certificates are valid and up-to-date
  3. Network Isolation: Container runs as non-root user ctc
  4. SBOM Generation: Run generate-sbom.sh after build for compliance
  • Dockerfile - Main Dockerfile with air-gapped configuration
  • Jenkinsfile - CI/CD pipeline with SBOM generation
  • README.md - Usage documentation
  • ../scripts/generate-sbom.sh - SBOM generation script