devops: add RPM prepare and external installers; extend Dockerfile and run_docker.sh for --run-rpm
This commit is contained in:
1 parent
89f048a312
commit
fe78be0afa
2 files changed
+45
-1
No files matched your search
@@ -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
@@ -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
|
||||
|
||||
Reference in new issue
Block a user