Apache Superset本地运行问题:dev容器加载失败,需修改前端
解决Apache Superset开发环境前端加载卡住问题(用于修改前端代码)
问题原因
docker compose up启动的是开发环境,该环境下前端不会预先构建好静态文件,而是需要在容器内启动前端开发服务器(热重载模式)。如果前端依赖未安装、构建过程未完成,或者前端服务未正常启动,就会导致页面持续加载。而docker-compose-non-dev.yml对应的是生产环境,前端静态文件已预构建完成,因此能直接访问。
解决步骤
1. 检查前端容器运行日志
先查看superset-node容器的日志输出,确认前端服务状态:
docker logs -f superset-node
如果看到npm install执行中或webpack dev server started的提示,说明正在初始化,需等待完成(首次启动可能耗时10-20分钟,取决于网络情况)。如果出现依赖安装失败等报错,需手动进入容器处理。
2. 手动进入前端容器完成依赖安装与服务启动
若自动初始化失败,手动进入superset-node容器:
docker exec -it superset-node /bin/bash
在容器内执行以下命令:
# 安装前端依赖 npm install # 启动前端热重载开发服务器 npm run dev
当看到webpack compiled successfully的提示后,刷新浏览器即可正常访问。
3. 验证前端服务端口
开发环境中,前端开发服务器默认运行在容器内的9000端口,docker-compose.yml已将其映射到主机9000端口。若localhost:8088加载卡住,可直接访问localhost:9000测试前端服务是否正常,正常情况下会跳转至Superset登录页。
4. 修改前端代码后的热重载验证
修改superset-frontend目录下的代码(比如src/components内的组件文件),保存后查看superset-node容器日志,会自动触发重新编译,完成后浏览器页面会自动刷新,无需重启容器。
注意事项
- 首次启动开发环境必须等待
superset-node容器完成依赖安装和服务启动,不要过早访问页面。 - 若网络不佳导致npm依赖安装失败,可在主机的
superset-frontend目录下先执行npm install(需本地安装Node.js),再启动容器,容器会复用本地已安装的依赖。
内容的提问来源于stack exchange,提问作者Angel Ortiz
相关产品推荐
相关产品推荐

