我将我的spring应用程序(后端)和angular应用程序(前端)移到了docker compose上-看起来一切正常,但是当angular发送GET / POST到spring boot时没有响应。
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无法得到响应:
我想弄清楚我的时间-我将很感谢每一个建议。
答案 0 :(得分:1)
Angular应用程序未在容器中运行,它被用作要在浏览器中运行的静态文件。您已将容器外部的8087端口映射到容器内部的8080端口,因此只需对Angular的API调用使用以下URL:http://<your-machine-or-domain-name>:8087