I';我在Docker Compose中得到'ERR_EMPTY_RESPONSE',即使这两个单独的容器在单独运行时可以工作
所以我有一个基本的前端和后端。后端依赖于一些环境变量,这是我的I';我在Docker Compose中得到'ERR_EMPTY_RESPONSE',即使这两个单独的容器在单独运行时可以工作,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,所以我有一个基本的前端和后端。后端依赖于一些环境变量,这是我的docker compose.yml 版本:“3.9” 服务: 后端: 环境文件: -环境署署长 建造: 上下文:./后端 容器名称:fastapi 端口: - 80:80 前端: 建造: 上下文:/前端 容器名称:vue ui 端口: - 8080:8080 链接: -后端 当我转到http://127.0.0.1:8080/,但是,当我为我的前端和后端运行单独的DockerFile时,这一切进展顺利 我的前端 FROM node
docker compose.yml
版本:“3.9”
服务:
后端:
环境文件:
-环境署署长
建造:
上下文:./后端
容器名称:fastapi
端口:
- 80:80
前端:
建造:
上下文:/前端
容器名称:vue ui
端口:
- 8080:8080
链接:
-后端
当我转到http://127.0.0.1:8080/
,但是,当我为我的前端和后端运行单独的DockerFile时,这一切进展顺利
我的前端
FROM node:lts-alpine
# install simple http server for serving static content
RUN npm install -g http-server
# make the 'frontend' folder the current working directory
WORKDIR /frontend
# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json ./
# install project dependencies
RUN npm install
# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .
# build app for production with minification
RUN npm run build
EXPOSE 8080
CMD [ "http-server", "dist" ]
我的后端
FROM tiangolo/uvicorn-gunicorn:python3.8
LABEL maintainer="Sebastian Ramirez <tiangolo@gmail.com>"
WORKDIR /backend
COPY requirements.txt requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
EXPOSE 80
额外的0来自哪里
这就是我分别运行两个容器时发生的情况
通过查看
docker ps
输出,我猜您在配置中意外地为后端和前端切换了端口。前端有未映射的端口80
,后端有未映射的端口8080
试试这个:
版本:“3.9”
服务:
后端:
环境文件:
-环境署署长
建造:
上下文:./后端
容器名称:fastapi
端口:
- 8080:8080
前端:
建造:
上下文:/前端
容器名称:vue ui
端口:
- 80:80
链接:
-后端
容器是否正确启动?执行docker ps
命令检查已创建的容器。当我运行docker compose up
时,在运行docker ps
之后,我发现了两个容器,如预期的那样。您可以通过localhost:80
访问后端吗?运气不好,请关闭docker compose部署吗(docker compose down
)并验证所有容器是否已停止(docker ps-a
->不应列出任何fastapi
,如果存在,请将其删除:docker rm
)?从OP:“…当我转到http://127.0.0.1:8080/
…”-前端似乎有意运行在端口8080
上。从OP的屏幕截图中,您可以看到前端容器正在侦听容器内的80端口和8080上的后端。这些端口未映射,所以我猜它是意外切换的。啊!很好!现在我可以查看前端,但为什么它从f发送重定向将请求发送到http://127.0.0.1:8000/
当我的后端仅与http://127.0.0.1:80/
(使用curl测试)刚刚用最新的内容更新了我的帖子happening@A.K.M.Adib您在哪里看到端口8000
?