From 4ff605891c9462827a8f7da1620bf438ce05ec78 Mon Sep 17 00:00:00 2001 From: troogs Date: Thu, 1 Oct 2026 18:56:45 +0200 Subject: [PATCH] Fix container startup with mounted config --- .dockerignore | 3 +-- .gitattributes | 1 + Dockerfile | 5 ++--- start.sh | 13 ++++++++----- 4 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 .gitattributes diff --git a/.dockerignore b/.dockerignore index 1ad00e2..c11264e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,5 +4,4 @@ Dockerfile docker-compose.yml .env *.exe -!config/ -!config/*.json +config/ diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..526c8a3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.sh text eol=lf \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 966d6b8..b51531a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,11 +18,10 @@ WORKDIR /app # Copy binary and static front-end assets COPY --from=builder /app/server /app/server COPY --from=builder /app/public /app/public -COPY --from=builder /app/config /app/config.default COPY start.sh /app/start.sh -RUN chmod +x /app/start.sh +RUN mkdir -p /app/config && chmod +x /app/start.sh EXPOSE 8080 -ENTRYPOINT ["/app/start.sh"] +ENTRYPOINT ["/bin/sh", "/app/start.sh"] diff --git a/start.sh b/start.sh index 0f86048..87fc8e8 100644 --- a/start.sh +++ b/start.sh @@ -5,16 +5,19 @@ config_dir="/app/config" settings_file="$config_dir/appsettings.json" if [ ! -f "$settings_file" ]; then - mkdir -p "$config_dir" - cp /app/config.default/appsettings.json "$settings_file" + echo "Missing mounted config file: $settings_file" >&2 + exit 1 fi activities_file="$config_dir/activities.json" available_dates_file="$config_dir/dates_available.json" booked_dates_file="$config_dir/dates_booked.json" -if [ ! -f "$activities_file" ] && ! grep -q '"activities"' "$settings_file"; then cp /app/config.default/activities.json "$activities_file"; fi -if [ ! -f "$available_dates_file" ] && ! grep -q '"availableDates"' "$settings_file"; then cp /app/config.default/dates_available.json "$available_dates_file"; fi -if [ ! -f "$booked_dates_file" ] && [ ! -f "$config_dir/booked_dates.json" ]; then cp /app/config.default/dates_booked.json "$booked_dates_file"; fi +for config_file in "$activities_file" "$available_dates_file" "$booked_dates_file"; do + if [ ! -f "$config_file" ]; then + echo "Missing mounted config file: $config_file" >&2 + exit 1 + fi +done exec /app/server \ No newline at end of file