Angular无法连接到docker compose

时间:2019-01-01 15:52:45

标签: angular spring spring-boot docker docker-compose

我将我的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无法得到响应:

enter image description here

我想弄清楚我的时间-我将很感谢每一个建议。

1 个答案:

答案 0 :(得分:1)

Angular应用程序未在容器中运行,它被用作要在浏览器中运行的静态文件。您已将容器外部的8087端口映射到容器内部的8080端口,因此只需对Angular的API调用使用以下URL:http://<your-machine-or-domain-name>:8087