【发布时间】:2019-05-28 12:57:51
【问题描述】:
我将我的 spring 应用程序(后端)和 angular 应用程序(前端)移动到 docker compose - 看起来一切正常,但是当 angular 向 spring boot 发送 GET/POST 时没有响应。
Dockerfile:
FROM java
VOLUME /tmp
ADD build/libs/backend.jar spring-boot-app.jar
RUN bash -c 'touch /spring-boot-app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/spring-boot-app.jar"]
docker-compose.yml
version: '3'
backend:
container_name: "backend"
restart: always
image: app:latest
depends_on:
- mysql
- mongodb
ports:
- 8087:8080
frontend:
container_name: "frontend"
image: frontend:latest
ports:
- 4201:4200
Dockerfile 角度:
FROM node:9.6.1
RUN mkdir /usr/src/app
WORKDIR /usr/src/app
ENV PATH /usr/src/app/node_modules/.bin:$PATH
COPY package.json /usr/src/app/package.json
RUN npm install
RUN npm install -g @angular/cli@1.7.1
COPY . /usr/src/app
CMD ng serve --host 0.0.0.0 --prod
我的 api 常量:
export const environment = {
production: true,
apiUrl: "http://backend:8080"
};
当我转到 localhost:4201 - 我可以看到我的前端,当我转到 localhost:8087 我可以看到我的后端和端点运行良好,但是 Angular 没有得到响应:
有几次我试图弄清楚 - 我会感谢每一个建议。
【问题讨论】:
-
您正在暴露端口
8087,因此您可能应该在此处更改端口号:apiUrl: "http://backend:8087" -
我只将它暴露给我的机器 - 在 docker 内部应该看到端口 8080,就像我在
ports: - 8087:8080中所做的那样 -
是的,但是您的浏览器向后端发出请求,而不是 Angular 容器。角度容器仅托管内容。
标签: angular spring spring-boot docker docker-compose