devops: add RPM prepare and external installers; extend Dockerfile and run_docker.sh for --run-rpm

This commit is contained in:
torsten committed 2026-07-18 18:24:31 +02:00
1 parent 89f048a312
commit fe78be0afa
2 files changed
+45 -1

No files matched your search

+10
View File
@@ -88,6 +88,16 @@ RUN set -eux; \
# geographiclib already installed via apt; RTI (Proprietary) cannot be installed automatically
echo "Note: RTI Connext (RTI) is proprietary and must be installed manually into /opt/RTI if required."
# Add RPM/rpmbuild tools so make_rpm.py can run inside the image when requested
RUN set -eux; \
apt-get update; \
apt-get install -y --no-install-recommends rpm rpm-build rpmdevtools || true; \
rm -rf /var/lib/apt/lists/*
# Copy helper scripts (do not execute heavy source builds here)
COPY prepare_rpm.sh install_arcgis.sh build_geographiclib.sh install_rti.sh /app/
RUN chmod +x /app/*.sh || true
COPY . /app
CMD ["python3.11", "run_migration.py", "--help"]
+35 -1
View File
@@ -12,6 +12,11 @@ QT_ROOT_DEFAULT="${QT_ROOT_DEFAULT:-/opt/Qt/6.8.3/gcc_64}"
GIT_REPO_DIR=""
WORKDIR_IN_CONTAINER=""
RUN_QT_SMOKE_TEST=0
RUN_RPM=0
PROJECT_RPM=""
OS_VERSION_RPM="ubuntu24"
LTS_VERSION_RPM="1.2.0"
GUEZ_MODE_RPM="ON"
QT_ROOT_OVERRIDE=""
DOCKER_ARGS=()
CMD_ARGS=()
@@ -55,6 +60,26 @@ while [[ $# -gt 0 ]]; do
QT_ROOT_OVERRIDE="$2"
shift 2
;;
--run-rpm)
RUN_RPM=1
shift
;;
--rpm-project)
PROJECT_RPM="$2"
shift 2
;;
--rpm-os)
OS_VERSION_RPM="$2"
shift 2
;;
--rpm-lts)
LTS_VERSION_RPM="$2"
shift 2
;;
--rpm-guez)
GUEZ_MODE_RPM="$2"
shift 2
;;
-h|--help)
usage
exit 0
@@ -169,7 +194,14 @@ EOF
)
fi
if [[ ${#CMD_ARGS[@]} -eq 0 ]]; then
if [[ ${RUN_RPM} -eq 1 ]]; then
# Run rpm prepare script inside container
if [[ -n "$PROJECT_RPM" ]]; then
CMD_ARGS=(bash -lc "/app/prepare_rpm.sh '$PROJECT_RPM' '$OS_VERSION_RPM' '$LTS_VERSION_RPM' '$GUEZ_MODE_RPM'")
else
CMD_ARGS=(bash -lc "/app/prepare_rpm.sh")
fi
elif [[ ${#CMD_ARGS[@]} -eq 0 ]]; then
CMD_ARGS=(bash)
fi
@@ -194,6 +226,8 @@ docker run --rm $DOCKER_TTY_FLAG \
-e QT_ROOT="$QT_ROOT_OVERRIDE" \
-e Qt6_ROOT="$QT_ROOT_OVERRIDE" \
-e CMAKE_PREFIX_PATH="$QT_ROOT_OVERRIDE" \
-e PROJECT_BASE_DIR="${PROJECT_BASE_DIR:-./}" \
-e PROJECT_BASE_DIR="${PROJECT_BASE_DIR:-./}" \
"$IMAGE_NAME" \
bash -s -- "${CMD_ARGS[@]}" <<'DOCKER_SCRIPT'
set -euo pipefail