- 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
2.9 KiB
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/
- APT:
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(viaARCGIS_SDK_ROOT) - RTI Connext DDS:
/opt/RTI(viaDDS_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
- Password Management: Use Docker secrets or environment variables for
RME_USERPASS - Certificate Validation: Ensure CA certificates are valid and up-to-date
- Network Isolation: Container runs as non-root user
ctc - SBOM Generation: Run
generate-sbom.shafter build for compliance
Related Files
Dockerfile- Main Dockerfile with air-gapped configurationJenkinsfile- CI/CD pipeline with SBOM generationREADME.md- Usage documentation../scripts/generate-sbom.sh- SBOM generation script