【问题标题】:Is there any way to do java compilation and deployment to web server inside the docker container?有没有办法在 docker 容器内进行 java 编译和部署到 web 服务器?
【发布时间】:2021-08-22 03:48:45
【问题描述】:

有没有办法在 docker 容器内进行 java 编译和部署到 web 服务器?

我无法在单个 Dockerfile 中同时提取 JDK 映像和 Tomcat 服务器映像,是否有其他方法可以解决此问题?

提前致谢

【问题讨论】:

  • 你的问题太笼统了,和构建docker镜像的基本概念有关。然而,一个简单的答案可能是打开 JDK 作为基础镜像,然后手动安装 tomcat 服务器。
  • Tomcat 的Docker Official Images 是基于JDK 映像的。

标签: java docker docker-compose dockerfile tomcat9


【解决方案1】:

当然,您已经编写了一个 multistage docker 文件,如此处 https://docs.docker.com/develop/develop-images/multistage-build/ 和此处 https://mailslurp.medium.com/faster-java-containers-with-docker-multi-stage-builds-cc63e056e546 所述。

按照最后发布的链接中的示例:

# build stage build the jar with all our resources
FROM openjdk:8-jdk as build

ARG VERSION
ARG JAR_PATH

VOLUME /tmp
WORKDIR /
ADD . .

RUN ./gradlew --stacktrace clean test build
RUN mv /$JAR_PATH /app.jar

# package stage
FROM openjdk:8-jdk-alpine
WORKDIR /
# copy only the built jar and nothing else
COPY --from=build /app.jar /

ENV VERSION=$VERSIOsN
ENV JAVA_OPTS=-Dspring.profiles.active=production

EXPOSE 5000

ENTRYPOINT ["sh","-c","java -jar -Dspring.profiles.active=production /app.jar"]

显然您必须根据自己的需要对其进行自定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-30
    相关资源
    最近更新 更多