0

CI: externalized components versions

This commit is contained in:
0x1def 2024-11-27 19:04:24 +03:00
parent 54eafe8709
commit ec81f21bfd
Signed by: 0x1def
GPG Key ID: D7D7D9B5E72B6AA2
3 changed files with 30 additions and 8 deletions

View File

@ -13,6 +13,13 @@ image="$APP_NAME/$APP_COMPONENT:$APP_VERSION"
dockerfile="./Dockerfile"
echo && echo "Building $image image"
executor -c ./ -f "$dockerfile" -d "$HARBOR_REGISTRY/$image"
executor -c ./ -f "$dockerfile" -d "$HARBOR_REGISTRY/$image" \
--build-arg MONGO_VERSION="$MONGO_VERSION" \
--build-arg MONGO_SHELL_VERSION="$MONGO_SHELL_VERSION" \
--build-arg MONGO_TOOLS_VERSION="$MONGO_TOOLS_VERSION" \
--build-arg MONGO_RUST_PING_VERSION="$MONGO_RUST_PING_VERSION" \
--build-arg YQ_VERSION="$YQ_VERSION" \
--build-arg WAIT_PORT_VERSION="$WAIT_PORT_VERSION" \
--build-arg RENDER_TEMPLATE_VERSION="$RENDER_TEMPLATE_VERSION"
echo && echo 'Done'

View File

@ -14,6 +14,13 @@ app_component='server'
printf 'APP_COMPONENT=%s\n' "$app_component" >> "$CI_ENV_FILE"
printf 'APP_VERSION=%s\n' "$(getAppVersion)" >> "$CI_ENV_FILE"
printf 'MONGO_VERSION=%s\n' '7.0.14' >> "$CI_ENV_FILE"
printf 'MONGO_SHELL_VERSION=%s\n' '2.3.0-0' >> "$CI_ENV_FILE"
printf 'MONGO_TOOLS_VERSION=%s\n' '100.10.0' >> "$CI_ENV_FILE"
printf 'MONGO_RUST_PING_VERSION=%s\n' '0.4.0' >> "$CI_ENV_FILE"
printf 'YQ_VERSION=%s\n' '4.44.3-2' >> "$CI_ENV_FILE"
printf 'WAIT_PORT_VERSION=%s\n' '1.0.8-3' >> "$CI_ENV_FILE"
printf 'RENDER_TEMPLATE_VERSION=%s\n' '1.0.7-3' >> "$CI_ENV_FILE"
printf 'HARBOR_REGISTRY=%s\n' 'harbor.flakybit.net' >> "$CI_ENV_FILE"
printf 'EXTERNAL_REGISTRY_NAMESPACE=%s\n' 'flakybitnet' >> "$CI_ENV_FILE"

View File

@ -1,7 +1,15 @@
FROM docker.io/bitnami/minideb:bookworm
ARG MONGO_VERSION
ARG MONGO_SHELL_VERSION
ARG MONGO_TOOLS_VERSION
ARG MONGO_RUST_PING_VERSION
ARG YQ_VERSION
ARG WAIT_PORT_VERSION
ARG RENDER_TEMPLATE_VERSION
ENV APP_NAME="mongodb" \
APP_VERSION="7.0.14" \
APP_VERSION=$MONGO_VERSION \
HOME="/opt/bitnami/mongodb" \
OS_ARCH="amd64" \
OS_FLAVOUR="debian-12" \
@ -32,10 +40,10 @@ RUN mkdir -p /tmp/bitnami/pkg/cache/ ; \
install_packages curl ; \
# Install Bitnami components
BITNAMI_COMPONENTS=( \
"mongodb-shell-2.3.0-0-linux-${OS_ARCH}-${OS_FLAVOUR}" \
"yq-4.44.3-2-linux-${OS_ARCH}-${OS_FLAVOUR}" \
"wait-for-port-1.0.8-3-linux-${OS_ARCH}-${OS_FLAVOUR}" \
"render-template-1.0.7-3-linux-${OS_ARCH}-${OS_FLAVOUR}" \
"mongodb-shell-${MONGO_SHELL_VERSION}-linux-${OS_ARCH}-${OS_FLAVOUR}" \
"yq-${YQ_VERSION}-linux-${OS_ARCH}-${OS_FLAVOUR}" \
"wait-for-port-${WAIT_PORT_VERSION}-linux-${OS_ARCH}-${OS_FLAVOUR}" \
"render-template-${RENDER_TEMPLATE_VERSION}-linux-${OS_ARCH}-${OS_FLAVOUR}" \
) ; \
for COMPONENT in "${BITNAMI_COMPONENTS[@]}"; do \
if [ ! -f "${COMPONENT}.tar.gz" ]; then \
@ -49,7 +57,7 @@ RUN mkdir -p /tmp/bitnami/pkg/cache/ ; \
# Install custom MongoDB and tools
COMPONENTS=( \
"mongodb-${APP_VERSION}-0-linux-${OS_ARCH}-${OS_FLAVOUR}" \
"mongo-tools-100.10.0-linux-${OS_ARCH}" \
"mongo-tools-${MONGO_TOOLS_VERSION}-linux-${OS_ARCH}" \
) ; \
for COMPONENT in "${COMPONENTS[@]}"; do \
if [ ! -f "${COMPONENT}.tar.gz" ]; then \
@ -63,7 +71,7 @@ RUN mkdir -p /tmp/bitnami/pkg/cache/ ; \
# Install rust-ping
COMPONENT='mongodb-rust-ping-x86_64-unknown-linux-gnu' ; \
echo "Downloading $COMPONENT" ; \
curl -SsLf "https://github.com/syndikat7/mongodb-rust-ping/releases/download/v0.4.0/$COMPONENT.tar.gz" -O ; \
curl -SsLf "https://github.com/syndikat7/mongodb-rust-ping/releases/download/v${MONGO_RUST_PING_VERSION}/$COMPONENT.tar.gz" -O ; \
tar -zxf "$COMPONENT.tar.gz" -C /usr/bin --no-same-owner ; \
# Remove unused packages and clean cache
apt-get autoremove --purge -y curl && \