tho*_*asA 5 java http docker docker-compose angular
我有两个简单的图像:
#Angular image
FROM node:12.2.0
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /app/package.json
RUN npm install
RUN npm install -g @angular/cli@7.3.9
COPY . /app
CMD ng serve
Run Code Online (Sandbox Code Playgroud)
&
# Java spring (REST) image
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./target/api-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar", "app.jar"]
Run Code Online (Sandbox Code Playgroud)
还有我的 docker-compose:
version: '3'
services:
web_app_speech:
image: web_app_speech
restart: always
ports:
- "4300:4200"
depends_on:
- api_speech_docker
api_speech_docker:
image: api_speech_docker
ports:
- "8080:8080"
restart: always
Run Code Online (Sandbox Code Playgroud)
$> 码头工人
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
15c719d31861 web_app_speech "/bin/sh -c 'ng serv…" 9 minutes ago Up 9 minutes 0.0.0.0:4300->4200/tcp azure_web_app_speech_1
044fd15f07e4 api_speech_docker "java -Djava.securit…" 10 minutes ago Up 9 minutes 0.0.0.0:8080->8080/tcp azure_api_speech_docker_1
Run Code Online (Sandbox Code Playgroud)
我可以从 localhost:8080 访问我的 REST API,从 localhost:4300 访问我的 web 应用程序没有问题,但是当我尝试从我的 web_app 调用我的 rest_api 时,我有以下错误:
OPTIONS http://api_speech_docker:8080/speech net::ERR_NAME_NOT_RESOLVED
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决这个问题,如果您需要更多日志,请告诉我!
谢谢你的帮助
小智 0
据我了解,您的 REST API 是从浏览器调用的,无法解析 docker 服务名称。针对不同的应用,我采用了以下解决方案:
使用本地主机: http://localhost:8080/speech
或者
通过公网IP命中端点 http://13.192.123.12:8080/speech