【发布时间】:2017-11-30 18:23:24
【问题描述】:
我正在构建一个 Spring Boot 应用程序,它有几个不同的 REST 端点。它可以在本地打包并成功作为jar文件启动。在本地运行时,我可以通过“http://localhost:8080/endpoint?params..”访问其端点。我现在的任务是准备这个应用程序以从 Docker 上运行。仍然在我的本地机器上工作,我已经创建了一个基于 Java:8 映像的 Dockers 容器。在这个容器中,我已经能够成功地从 .jar 运行我的应用程序。我的问题是,当应用程序托管在 Docker 之外时,我不明白如何调用应用程序内部的 REST 端点,因为逻辑上 localhost:8080/endpoint 不再响应调用。
补充信息:我的本地计算机是 Windows,Docker 映像是 Ubuntu(最终将启动到 Linux 服务器上)。
更新:使用以下 Dockerfile 创建了一个新映像:
FROM openjdk:8
MAINTAINER My Name email@email.com
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
EXPOSE 8080
RUN javac Main.java
CMD ["java", "Main"]
同样的问题,无法通过http://localhost:8080/endpoint访问端点
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
你是否在 Dockerfile 中做了类似
EXPOSE 8080的操作? -
@Gregg 我没有创建图像,因此我不确定 Dockerfile 包含什么。我在这里按照教程进行操作:octoperf.com/blog/2016/02/11/small-java-docker-images 解释了运行命令“docker pull java:8”
标签: java rest docker spring-boot