我尝试做的很简单,将一个Spring Boot RESTful Web服务部署到EC2,以便公开访问。
为此,我需要做以下事情:
这是我的Dockerfile:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
当我在1880本地运行它时,它工作正常(返回静态json)。
这是我需要帮助的地方
我从dockerhub运行docker image就像这样
docker run --rm -p 80:8080 kaspartr/demo
它当然不允许端口被apache占用。如果我停止并运行它已部署但我无法在线访问它。
有人可以解释一下如何将docker镜像部署到apache中?
我是否需要更改Dockerfile或其他内容?
谢谢!
答案 0 :(得分:1)
通常我在单独的端口上运行应用程序并向前执行docker:
添加你的application.properties
server.port=9001
并添加到docker-compose.yml:
version: '1'
services:
your-service:
build: .
ports:
- '9001:9001'
environment:
SERVICE_URL: http://service:9001/path
答案 1 :(得分:1)
由于Apache已经使用了端口80,因此也无法使容器在端口80上运行。
我的猜测是你计划使用Apache作为容器的反向代理。尝试将容器发布到另一个端口,并使用Apache将端口80代理到容器。