【发布时间】:2021-04-22 06:50:36
【问题描述】:
我有一个 Angular 应用程序在 NginX Docker 容器中运行。
Angular 应用可以使用localhost 作为服务器对另一个容器(Spring Boot API Docker)进行REST 调用。
server: string = 'localhost';
return this.httpClient.post<MyClass[]>('http://' + this.server + ':6060/files-data/list-files', request);
但是当使用Docker 服务名称时,REST 调用失败。
server: string = 'files-service';
return this.httpClient.post<MyClass[]>('http://' + this.server + ':8080/files-data/list-files', request);
*这次使用 8080 端口尝试解析 docker 服务名称
UI 控制台出错:
net::ERR_NAME_NOT_RESOLVED
使用默认NginXimage 和默认nginx.conf。
nginx-files-ui:
image: nginx:latest
container_name: nginx-files-ui
volumes:
- ./files-ui/dist/html:/usr/share/nginx/html
ports:
- 99:80
容器都在同一个Docker 网络上运行。
networks:
default:
external:
name: files-net
修改了nginx.conf 以包含解析器,但没有任何乐趣。
resolver 127.0.0.11 valid=30s;
知道为什么我不能使用Docker 服务名称拨打REST 吗?
编辑
在浏览器中运行的 Angular 代码似乎无法解析服务名称。
【问题讨论】:
标签: angular nginx docker-compose