This is an automated email from the ASF dual-hosted git repository. maximebeauchemin pushed a commit to branch docker-up in repository https://gitbox.apache.org/repos/asf/superset.git
commit bc76ab4eec45135f40d39f5ea99a8c1ddf026396 Author: Maxime Beauchemin <[email protected]> AuthorDate: Mon Jan 19 14:18:19 2026 +0000 fix(docker): set FLASK_RUN_HOST for docker-compose-light networking Fixes Flask backend connectivity in docker-compose-light setup by setting FLASK_RUN_HOST=0.0.0.0 environment variable. Without this variable, Flask's development server only binds to 127.0.0.1 (localhost), preventing the webpack dev server container from proxying requests to the backend API. This caused health check timeouts and made the application inaccessible. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]> --- Dockerfile | 3 +++ docker-compose-light.yml | 17 ++++++++++++++++- docker/docker-healthcheck-node.sh | 20 ++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e989ecba37..fb9f479f8c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -81,6 +81,9 @@ COPY superset-frontend /app/superset-frontend ###################################################################### FROM superset-node-ci AS superset-node +# Install curl for healthcheck +RUN apt-get update && apt-get install -y --no-install-recommends curl && rm -rf /var/lib/apt/lists/* + # Build the frontend if not in dev mode RUN --mount=type=cache,target=/root/.npm \ if [ "${DEV_MODE}" = "false" ]; then \ diff --git a/docker-compose-light.yml b/docker-compose-light.yml index b06be681af..272a6a2f14 100644 --- a/docker-compose-light.yml +++ b/docker-compose-light.yml @@ -111,13 +111,22 @@ services: depends_on: superset-init-light: condition: service_completed_successfully + superset-node-light: + condition: service_healthy volumes: *superset-volumes + healthcheck: + test: ["CMD-SHELL", "/app/docker/docker-healthcheck.sh"] + interval: 30s + timeout: 30s + retries: 3 + start_period: 60s environment: DATABASE_HOST: db-light DATABASE_DB: superset_light POSTGRES_DB: superset_light SUPERSET__SQLALCHEMY_EXAMPLES_URI: "duckdb:////app/data/examples.duckdb" SUPERSET_CONFIG_PATH: /app/docker/pythonpath_dev/superset_config_docker_light.py + FLASK_RUN_HOST: 0.0.0.0 GITHUB_HEAD_REF: ${GITHUB_HEAD_REF:-} GITHUB_SHA: ${GITHUB_SHA:-} @@ -154,6 +163,12 @@ services: # it'll mount and watch local files and rebuild as you update them DEV_MODE: "true" BUILD_TRANSLATIONS: ${BUILD_TRANSLATIONS:-false} + healthcheck: + test: ["CMD-SHELL", "/app/docker/docker-healthcheck-node.sh"] + interval: 10s + timeout: 5s + retries: 3 + start_period: 90s environment: # set this to false if you have perf issues running the npm i; npm run dev in-docker # if you do so, you have to run this manually on the host, which should perform better! @@ -163,7 +178,7 @@ services: # configuring the dev-server to use the host.docker.internal to connect to the backend superset: "http://superset-light:8088" # Webpack dev server configuration - WEBPACK_DEVSERVER_HOST: "${WEBPACK_DEVSERVER_HOST:-127.0.0.1}" + WEBPACK_DEVSERVER_HOST: "${WEBPACK_DEVSERVER_HOST:-0.0.0.0}" WEBPACK_DEVSERVER_PORT: "${WEBPACK_DEVSERVER_PORT:-9000}" ports: - "${NODE_PORT:-9001}:9000" # Parameterized port, accessible on all interfaces diff --git a/docker/docker-healthcheck-node.sh b/docker/docker-healthcheck-node.sh new file mode 100755 index 0000000000..d8f42b40f2 --- /dev/null +++ b/docker/docker-healthcheck-node.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Health check for webpack dev server +curl -f "http://localhost:${WEBPACK_DEVSERVER_PORT:-9000}/" || exit 1
