mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-16 18:08:21 +00:00
fix(docker): support TZ environment variable (#5891)
Install tzdata in both published runtime variants and verify IANA timezone resolution during image builds. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
8f9633ee83
commit
d7f014cf5f
@@ -25,6 +25,7 @@ TEST_THREADS ?= 1
|
|||||||
script-tests: ## Run shell script tests
|
script-tests: ## Run shell script tests
|
||||||
@echo "Running script tests..."
|
@echo "Running script tests..."
|
||||||
./scripts/test_build_rustfs_options.sh
|
./scripts/test_build_rustfs_options.sh
|
||||||
|
./scripts/test_docker_runtime_timezone.sh
|
||||||
./scripts/test_entrypoint_credentials.sh
|
./scripts/test_entrypoint_credentials.sh
|
||||||
./scripts/test_internode_grpc_ab_bench.sh
|
./scripts/test_internode_grpc_ab_bench.sh
|
||||||
./scripts/test_object_batch_bench_enhanced.sh
|
./scripts/test_object_batch_bench_enhanced.sh
|
||||||
|
|||||||
+6
-1
@@ -91,7 +91,12 @@ LABEL name="RustFS" \
|
|||||||
# Upgrade base-image packages so published images pick up security fixes
|
# Upgrade base-image packages so published images pick up security fixes
|
||||||
# (e.g. openssl/libssl3 CVEs) without waiting for a new Alpine point release.
|
# (e.g. openssl/libssl3 CVEs) without waiting for a new Alpine point release.
|
||||||
RUN apk upgrade --no-cache && \
|
RUN apk upgrade --no-cache && \
|
||||||
apk add --no-cache ca-certificates coreutils curl
|
apk add --no-cache \
|
||||||
|
ca-certificates \
|
||||||
|
coreutils \
|
||||||
|
curl \
|
||||||
|
tzdata \
|
||||||
|
&& test "$(TZ=Asia/Kolkata date +%z)" = "+0530"
|
||||||
|
|
||||||
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||||
COPY --from=build /build/rustfs /usr/bin/rustfs
|
COPY --from=build /build/rustfs /usr/bin/rustfs
|
||||||
|
|||||||
+3
-1
@@ -96,9 +96,11 @@ LABEL name="RustFS" \
|
|||||||
# Upgrade base-image packages so published images pick up security fixes
|
# Upgrade base-image packages so published images pick up security fixes
|
||||||
# (e.g. tar/gzip/perl CVEs) without waiting for a new Ubuntu point release.
|
# (e.g. tar/gzip/perl CVEs) without waiting for a new Ubuntu point release.
|
||||||
RUN apt-get update && apt-get upgrade -y \
|
RUN apt-get update && apt-get upgrade -y \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
|
tzdata \
|
||||||
|
&& test "$(TZ=Asia/Kolkata date +%z)" = "+0530" \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY --from=build /build/rustfs /usr/bin/rustfs
|
COPY --from=build /build/rustfs /usr/bin/rustfs
|
||||||
|
|||||||
Executable
+24
@@ -0,0 +1,24 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
||||||
|
|
||||||
|
for dockerfile in Dockerfile Dockerfile.glibc; do
|
||||||
|
runtime_stage=$(
|
||||||
|
awk '
|
||||||
|
/^FROM[[:space:]]/ { stage = "" }
|
||||||
|
{ stage = stage $0 ORS }
|
||||||
|
END { printf "%s", stage }
|
||||||
|
' "$ROOT_DIR/$dockerfile"
|
||||||
|
)
|
||||||
|
|
||||||
|
if ! grep -Eq '^[[:space:]]*tzdata([[:space:]]*\\)?[[:space:]]*$' <<<"$runtime_stage"; then
|
||||||
|
echo "$dockerfile runtime stage must install tzdata" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -Fq 'test "$(TZ=Asia/Kolkata date +%z)" = "+0530"' <<<"$runtime_stage"; then
|
||||||
|
echo "$dockerfile runtime stage must verify IANA timezone resolution" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user