【发布时间】:2019-12-22 07:20:51
【问题描述】:
我创建了一个 docker-compose.yml 文件并创建了三个服务:
- asana_back: spring-boot 在端口 8080;
- asana_database: mysql 在端口 3306;
- asana_front:80 端口上的 nginx;
我将它们添加到名为 call-asana-network 的网络中。
在 docker-compose.yml 文件中,我在字段container_name 中设置了容器的名称,以便容器内部使用名称,但是,在 nginx 中的前端之间的通信无法通信背面并在浏览器中显示错误ERR_NAME_NOT_RESOLVED。我相信是nginx配置文件,但我不知道它是什么。
我不知道这是否重要,但前端系统是 Angular 7。
Environment.prod.ts 代码:
export const environment = {
production: true,
serverApiURL: "http://asana_back:8080/api"
};
Docker 编写代码:
version: '3'
services:
back:
image: openjdk:8-jre
container_name: asana_back
restart: always
tty: true
volumes:
- ./server-spring:/server-spring
command: java -jar -Dspring.profiles.active=prod /server-spring/system.war
ports:
- "8888:8080"
networks:
- call-asana-network
front:
image: nginx:1.17
container_name: asana_front
restart: always
tty: true
ports:
- "8980:80"
volumes:
- ./server-nginx/www:/var/www
- ./server-nginx/conf.d/:/etc/nginx/conf.d/
networks:
- call-asana-network
database:
image: mysql:8
container_name: asana_database
environment:
MYSQL_ROOT_PASSWORD: fWXDA0UCYnbf7Rr95hyt
MYSQL_DATABASE: call_asana
tty: true
networks:
- call-asana-network
ports:
- "3366:3306"
restart: always
# Docker network
networks:
call-asana-network:
driver: bridge
Nginx app.conf 代码:
server {
listen 80;
index index.html;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www;
location / {
try_files $uri $uri/ /index.html;
gzip_static on;
}
}
浏览器Chrome输入的标头数据:
Request URL: http://asana_back:8080/api/project
Referrer Policy: no-referrer-when-downgrade
Accept: application/json
Origin: http://localhost:8980
Referer: http://localhost:8980/
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36
【问题讨论】:
-
谁是
asana_call? -
这是一个错误,我改成 asana_back 是正确的,但问题仍然存在。我相信是 nginx 配置,我一直在更改和测试,但无济于事。
标签: angular nginx docker-compose