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
|
# 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."
|
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
|
COPY . /app
|
||||||
|
|
||||||
CMD ["python3.11", "run_migration.py", "--help"]
|
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=""
|
GIT_REPO_DIR=""
|
||||||
WORKDIR_IN_CONTAINER=""
|
WORKDIR_IN_CONTAINER=""
|
||||||
RUN_QT_SMOKE_TEST=0
|
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=""
|
QT_ROOT_OVERRIDE=""
|
||||||
DOCKER_ARGS=()
|
DOCKER_ARGS=()
|
||||||
CMD_ARGS=()
|
CMD_ARGS=()
|
||||||
@@ -55,6 +60,26 @@ while [[ $# -gt 0 ]]; do
|
|||||||
QT_ROOT_OVERRIDE="$2"
|
QT_ROOT_OVERRIDE="$2"
|
||||||
shift 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)
|
-h|--help)
|
||||||
usage
|
usage
|
||||||
exit 0
|
exit 0
|
||||||
@@ -169,7 +194,14 @@ EOF
|
|||||||
)
|
)
|
||||||
fi
|
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)
|
CMD_ARGS=(bash)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -194,6 +226,8 @@ docker run --rm $DOCKER_TTY_FLAG \
|
|||||||
-e QT_ROOT="$QT_ROOT_OVERRIDE" \
|
-e QT_ROOT="$QT_ROOT_OVERRIDE" \
|
||||||
-e Qt6_ROOT="$QT_ROOT_OVERRIDE" \
|
-e Qt6_ROOT="$QT_ROOT_OVERRIDE" \
|
||||||
-e CMAKE_PREFIX_PATH="$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" \
|
"$IMAGE_NAME" \
|
||||||
bash -s -- "${CMD_ARGS[@]}" <<'DOCKER_SCRIPT'
|
bash -s -- "${CMD_ARGS[@]}" <<'DOCKER_SCRIPT'
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|||||||
Reference in new issue
Block a user