【发布时间】:2020-04-21 19:55:07
【问题描述】:
我有两个 docker-compose 用于后端(.net Core)和 Angular 前端。这些应该相互通信。为此,我尝试了一个网络。但我总是收到以下消息:
[HPM] 尝试将请求 /appinfo 从 localhost:4200 代理到 http://localhost:5000 时出错(ECONNREFUSED)
两个容器都在运行。后端撰写是通过 Visual Studio 启动的。 frontend-compose 是使用 powershell 启动的。
我在前端尝试了 80 和 5000 端口。结果是一样的。
对于网络我试过没有外部。对于外部,我使用“docker network create test_network”手动创建了网络。
后端 docker-compose:
version: '3.7'
services:
backend_sql:
image: mcr.microsoft.com/mssql/server:2017-GA-ubuntu
container_name: testsql
networks:
- test_network
ports:
- "1440:1433"
volumes:
- testsqldata:/var/opt/mssql
backend_api:
image: ${DOCKER_REGISTRY-}backendapi
container_name: testapi
build:
context: .
dockerfile: backendAPI/Dockerfile
networks:
- test_network
depends_on:
- backend_sql
ports:
- "5000:80"
networks:
test_network:
external:
name: test_network
volumes:
testsqldata:
driver: local
name: testsqldata
前端 docker-compose:
version: "3.7"
services:
testapp:
container_name: testapp
build: .
networks:
- test_network
ports:
- "4200:4200"
- "49153:49153"
volumes:
- "/app/node_modules"
- ".:/app"
networks:
test_network:
external:
name: test_network
前端dockerfile:
FROM node:10.16.3-alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 4200 49153
CMD npm run start
package.json:
"scripts": {
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --port 4200 --poll 500 --disableHostCheck",
"serve": "ng serve --proxy-config src/proxy.server.config.js",
proxy.server.config.js:
const PROXY_CONFIG = [
{
context: [
'/api',
],
target: 'http://localhost:5000',
secure: false,
logLevel: 'debug',
ws: true,
pathRewrite: {
"^/api": ""
}
}
];
module.exports = PROXY_CONFIG;
【问题讨论】:
-
你应该使用服务名称来连接容器而不是“localhost”
标签: angular docker .net-core docker-compose