首次使用Docker+docker-compose部署React+Flask应用求配置排查指导
docker-compose启动失败排查步骤
- 校验YAML语法合法性
执行命令docker-compose config检查配置文件语法,YAML对格式要求严格,禁止使用Tab缩进、必须用空格,层级缩进要统一,冒号后必须跟空格,出现语法错误直接按照提示修正即可。 - 核对构建配置与路径
确认compose文件中两个服务的build.context路径分别对应client、server文件夹,如果你本地的Dockerfile命名为DockerFile(F大写),需要在build配置中额外指定dockerfile: DockerFile,compose默认只会识别名为Dockerfile的构建文件。 - 排查端口占用问题
执行命令netstat -tulpn | grep -E '3030|5030'检查宿主机对应端口是否被其他进程占用,也可以执行docker ps -a查看是否有已退出的旧容器占用了目标端口。 - 修正容器内部访问逻辑
容器内部不支持通过localhost访问其他容器的服务,需要使用compose中定义的服务名作为域名访问,比如Flask服务在compose中命名为server,React内的接口请求地址需要写为http://server:5030,不能使用localhost:5030。 - 查看具体报错日志定位问题
执行docker-compose logs client查看React容器的启动日志,执行docker-compose logs server查看Flask容器的启动日志,根据日志中的具体报错(比如依赖缺失、端口配置错误、权限不足等)针对性修正即可。 - 检查启动依赖逻辑
如果配置了depends_on参数,该参数仅能保证容器的启动顺序,不会等待容器内的应用进程完全启动就绪,如果Flask启动速度慢于React,会导致React启动时请求接口失败异常退出,可在React启动逻辑中添加接口重试机制,或者给Flask服务配置健康检查。
内容的提问来源于stack exchange,提问作者M. Stolte
相关产品推荐
相关产品推荐

