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
This commit is contained in:
1 file changed
+87
@@ -0,0 +1,87 @@
|
||||
# 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
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
docker build -t legatus-qt6-framework:6.10.2 \
|
||||
--build-arg RME_USERPASS=your_password \
|
||||
external-dependencies/qt6-framework/
|
||||
```
|
||||
|
||||
### Air-Gapped Build with Proxy
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
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:
|
||||
```bash
|
||||
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
|
||||
|
||||
## Related Files
|
||||
|
||||
- `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
|
||||
Reference in new issue
Block a user