From 9a67801515cf933b8732f422b1d9a893d9541363 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 6 Sep 2026 22:03:23 +0100 Subject: [PATCH] build(compose): pass optional VITE_* through only when set The Vite dev server (docker-compose.yaml's dev target) lets an empty process variable override .env.development, so listing every VITE_* as ${VAR:-} wiped the banner and Google client id defaults. A bare name in the environment list reaches the container only when the variable is set in the shell or the --env-file; unset ones are omitted. Applied to all four compose files. --- deployment/docker-compose-azure.yaml | 25 ++++++++++++----------- deployment/docker-compose-hub.yaml | 25 ++++++++++++----------- deployment/docker-compose-standalone.yaml | 25 ++++++++++++----------- deployment/docker-compose.yaml | 25 ++++++++++++----------- 4 files changed, 52 insertions(+), 48 deletions(-) diff --git a/deployment/docker-compose-azure.yaml b/deployment/docker-compose-azure.yaml index ede47a0a..bd8f17d5 100644 --- a/deployment/docker-compose-azure.yaml +++ b/deployment/docker-compose-azure.yaml @@ -4,20 +4,21 @@ services: context: ../frontend target: dev environment: - # Every VITE_* the app reads, taken from .env (or the shell); empty ones - # leave the image's build-time default in place. + # Every VITE_* the app reads. A bare name is passed through only when it is + # set in the shell or the --env-file, so an unset one does not reach the + # container as an empty string and override the image's own default. - VITE_API_HOST=http://localhost:7091 - VITE_API_STREAMING=${VITE_API_STREAMING:-true} - - VITE_BASE_URL=${VITE_BASE_URL:-} - - VITE_GOOGLE_CLIENT_ID=${VITE_GOOGLE_CLIENT_ID:-} - - VITE_GOOGLE_PICKER_API_KEY=${VITE_GOOGLE_PICKER_API_KEY:-} - - VITE_SHARE_POINT_CLIENT_ID=${VITE_SHARE_POINT_CLIENT_ID:-} - - VITE_CONFLUENCE_CLIENT_ID=${VITE_CONFLUENCE_CLIENT_ID:-} - - VITE_NOTIFICATION_TEXT=${VITE_NOTIFICATION_TEXT:-} - - VITE_NOTIFICATION_LINK=${VITE_NOTIFICATION_LINK:-} - - VITE_ENABLE_VOICE_INPUT=${VITE_ENABLE_VOICE_INPUT:-} - - VITE_DISABLE_SOURCE_FE=${VITE_DISABLE_SOURCE_FE:-} - - VITE_USE_V=${VITE_USE_V:-} + - VITE_BASE_URL + - VITE_GOOGLE_CLIENT_ID + - VITE_GOOGLE_PICKER_API_KEY + - VITE_SHARE_POINT_CLIENT_ID + - VITE_CONFLUENCE_CLIENT_ID + - VITE_NOTIFICATION_TEXT + - VITE_NOTIFICATION_LINK + - VITE_ENABLE_VOICE_INPUT + - VITE_DISABLE_SOURCE_FE + - VITE_USE_V ports: - "5173:5173" depends_on: diff --git a/deployment/docker-compose-hub.yaml b/deployment/docker-compose-hub.yaml index cd365cca..2a3f1be7 100644 --- a/deployment/docker-compose-hub.yaml +++ b/deployment/docker-compose-hub.yaml @@ -10,20 +10,21 @@ services: frontend: image: arc53/docsgpt-fe:${DOCSGPT_IMAGE_TAG:-develop} environment: - # Every VITE_* the app reads, taken from .env (or the shell); empty ones - # leave the image's build-time default in place. + # Every VITE_* the app reads. A bare name is passed through only when it is + # set in the shell or the --env-file, so an unset one does not reach the + # container as an empty string and override the image's own default. - VITE_API_HOST=http://localhost:7091 - VITE_API_STREAMING=${VITE_API_STREAMING:-true} - - VITE_BASE_URL=${VITE_BASE_URL:-} - - VITE_GOOGLE_CLIENT_ID=${VITE_GOOGLE_CLIENT_ID:-} - - VITE_GOOGLE_PICKER_API_KEY=${VITE_GOOGLE_PICKER_API_KEY:-} - - VITE_SHARE_POINT_CLIENT_ID=${VITE_SHARE_POINT_CLIENT_ID:-} - - VITE_CONFLUENCE_CLIENT_ID=${VITE_CONFLUENCE_CLIENT_ID:-} - - VITE_NOTIFICATION_TEXT=${VITE_NOTIFICATION_TEXT:-} - - VITE_NOTIFICATION_LINK=${VITE_NOTIFICATION_LINK:-} - - VITE_ENABLE_VOICE_INPUT=${VITE_ENABLE_VOICE_INPUT:-} - - VITE_DISABLE_SOURCE_FE=${VITE_DISABLE_SOURCE_FE:-} - - VITE_USE_V=${VITE_USE_V:-} + - VITE_BASE_URL + - VITE_GOOGLE_CLIENT_ID + - VITE_GOOGLE_PICKER_API_KEY + - VITE_SHARE_POINT_CLIENT_ID + - VITE_CONFLUENCE_CLIENT_ID + - VITE_NOTIFICATION_TEXT + - VITE_NOTIFICATION_LINK + - VITE_ENABLE_VOICE_INPUT + - VITE_DISABLE_SOURCE_FE + - VITE_USE_V ports: - "5173:5173" depends_on: diff --git a/deployment/docker-compose-standalone.yaml b/deployment/docker-compose-standalone.yaml index 8b09ea2c..9dec0de0 100644 --- a/deployment/docker-compose-standalone.yaml +++ b/deployment/docker-compose-standalone.yaml @@ -29,20 +29,21 @@ services: - path: .env required: false environment: - # Every VITE_* the app reads, taken from .env (or the shell); empty ones - # leave the image's build-time default in place. + # Every VITE_* the app reads. A bare name is passed through only when it is + # set in the shell or the --env-file, so an unset one does not reach the + # container as an empty string and override the image's own default. - VITE_API_HOST=${VITE_API_HOST:-http://localhost:7091} - VITE_API_STREAMING=${VITE_API_STREAMING:-true} - - VITE_BASE_URL=${VITE_BASE_URL:-} - - VITE_GOOGLE_CLIENT_ID=${VITE_GOOGLE_CLIENT_ID:-} - - VITE_GOOGLE_PICKER_API_KEY=${VITE_GOOGLE_PICKER_API_KEY:-} - - VITE_SHARE_POINT_CLIENT_ID=${VITE_SHARE_POINT_CLIENT_ID:-} - - VITE_CONFLUENCE_CLIENT_ID=${VITE_CONFLUENCE_CLIENT_ID:-} - - VITE_NOTIFICATION_TEXT=${VITE_NOTIFICATION_TEXT:-} - - VITE_NOTIFICATION_LINK=${VITE_NOTIFICATION_LINK:-} - - VITE_ENABLE_VOICE_INPUT=${VITE_ENABLE_VOICE_INPUT:-} - - VITE_DISABLE_SOURCE_FE=${VITE_DISABLE_SOURCE_FE:-} - - VITE_USE_V=${VITE_USE_V:-} + - VITE_BASE_URL + - VITE_GOOGLE_CLIENT_ID + - VITE_GOOGLE_PICKER_API_KEY + - VITE_SHARE_POINT_CLIENT_ID + - VITE_CONFLUENCE_CLIENT_ID + - VITE_NOTIFICATION_TEXT + - VITE_NOTIFICATION_LINK + - VITE_ENABLE_VOICE_INPUT + - VITE_DISABLE_SOURCE_FE + - VITE_USE_V ports: - "5173:5173" depends_on: diff --git a/deployment/docker-compose.yaml b/deployment/docker-compose.yaml index 887e2a13..787696f3 100644 --- a/deployment/docker-compose.yaml +++ b/deployment/docker-compose.yaml @@ -9,20 +9,21 @@ services: volumes: - ../frontend/src:/app/src environment: - # Every VITE_* the app reads, taken from .env (or the shell); empty ones - # leave the image's build-time default in place. + # Every VITE_* the app reads. A bare name is passed through only when it is + # set in the shell or the --env-file, so an unset one does not reach the + # container as an empty string and override the image's own default. - VITE_API_HOST=http://localhost:7091 - VITE_API_STREAMING=${VITE_API_STREAMING:-true} - - VITE_BASE_URL=${VITE_BASE_URL:-} - - VITE_GOOGLE_CLIENT_ID=${VITE_GOOGLE_CLIENT_ID:-} - - VITE_GOOGLE_PICKER_API_KEY=${VITE_GOOGLE_PICKER_API_KEY:-} - - VITE_SHARE_POINT_CLIENT_ID=${VITE_SHARE_POINT_CLIENT_ID:-} - - VITE_CONFLUENCE_CLIENT_ID=${VITE_CONFLUENCE_CLIENT_ID:-} - - VITE_NOTIFICATION_TEXT=${VITE_NOTIFICATION_TEXT:-} - - VITE_NOTIFICATION_LINK=${VITE_NOTIFICATION_LINK:-} - - VITE_ENABLE_VOICE_INPUT=${VITE_ENABLE_VOICE_INPUT:-} - - VITE_DISABLE_SOURCE_FE=${VITE_DISABLE_SOURCE_FE:-} - - VITE_USE_V=${VITE_USE_V:-} + - VITE_BASE_URL + - VITE_GOOGLE_CLIENT_ID + - VITE_GOOGLE_PICKER_API_KEY + - VITE_SHARE_POINT_CLIENT_ID + - VITE_CONFLUENCE_CLIENT_ID + - VITE_NOTIFICATION_TEXT + - VITE_NOTIFICATION_LINK + - VITE_ENABLE_VOICE_INPUT + - VITE_DISABLE_SOURCE_FE + - VITE_USE_V ports: - "5173:5173" depends_on: