From 52b8b651cdb669a77c7432300bffd21eac987000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D1=82=D1=8B=D0=BD=D0=BE=D0=B2=20=D0=9C?= =?UTF-8?q?=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=A1=D0=B5=D1=80=D0=B3=D0=B5?= =?UTF-8?q?=D0=B5=D0=B2=D0=B8=D1=87?= Date: Fri, 31 Oct 2025 12:03:20 +0300 Subject: [PATCH] [DOP-29496] Allow reading settings from config.yml --- docker/Dockerfile | 9 ++++----- docker/entrypoint.sh | 22 +++++++++++++++++++++- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 58ab3c4c..5acbe43b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -15,18 +15,17 @@ COPY . . RUN yarn build +FROM mikefarah/yq AS yq FROM nginx:stable-alpine AS prod COPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/dist /usr/share/nginx/html COPY ./docker/entrypoint.sh /entrypoint.sh -RUN chmod +x /entrypoint.sh +COPY --from=yq /usr/bin/yq /usr/bin/yq +RUN chmod +x /entrypoint.sh /usr/bin/yq -ARG API_URL=http://localhost:8000 -ARG AUTH_PROVIDER=dummyAuthProvider -ENV SYNCMASTER__UI__API_BROWSER_URL=${API_URL} -ENV SYNCMASTER__UI__AUTH_PROVIDER=${AUTH_PROVIDER} +ENV SYNCMASTER_CONFIG_FILE=/app/config.yaml ENTRYPOINT ["/entrypoint.sh"] CMD ["nginx", "-g", "daemon off;"] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 250cb2c0..c2c169e8 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -1,5 +1,25 @@ #!/bin/sh +SYNCMASTER_CONFIG_FILE=${SYNCMASTER_CONFIG_FILE:-/app/config.yaml} +SYNCMASTER__UI__API_BROWSER_URL_DEFAULT="http://localhost:8000" +SYNCMASTER__UI__AUTH_PROVIDER_DEFAULT="dummyAuthProvider" + +if [[ -z "${SYNCMASTER__UI__API_BROWSER_URL}" ]]; then + if [[ -f "$SYNCMASTER_CONFIG_FILE" ]]; then + SYNCMASTER__UI__API_BROWSER_URL=$(yq --raw-output ".ui.api_browser_url // \"$SYNCMASTER__UI__API_BROWSER_URL_DEFAULT\"" "$SYNCMASTER_CONFIG_FILE") + else + SYNCMASTER__UI__API_BROWSER_URL="$SYNCMASTER__UI__API_BROWSER_URL_DEFAULT" + fi +fi + +if [[ -z "${SYNCMASTER__UI__AUTH_PROVIDER}" ]]; then + if [[ -f "$SYNCMASTER_CONFIG_FILE" ]]; then + SYNCMASTER__UI__AUTH_PROVIDER=$(yq --raw-output ".ui.auth_provider // \"$SYNCMASTER__UI__AUTH_PROVIDER_DEFAULT\"" "$SYNCMASTER_CONFIG_FILE") + else + SYNCMASTER__UI__AUTH_PROVIDER="$SYNCMASTER__UI__AUTH_PROVIDER_DEFAULT" + fi +fi + cat < /usr/share/nginx/html/env-config.js window.env = { API_URL: "${SYNCMASTER__UI__API_BROWSER_URL}", @@ -9,4 +29,4 @@ EOF sed -i '/<\/head>/i \ ' /usr/share/nginx/html/index.html -exec "$@" \ No newline at end of file +exec "$@"