gpt4 book ai didi

java - 如何快速将maven项目集成到docker中

转载 作者:行者123 更新时间:2023-12-02 12:20:07 25 4
gpt4 key购买 nike

我有一个maven项目,其项目结构如下:

父项目:

  1. 父项目:

    AProject.war

    BProject.war

  2. parentApiProject:

    AProjectApi.jar

    BProjectApi.jar

我想在打包项目的同时将下面四个项目复制到四个docker中,并且会运行起来。

有什么好的想法和技术解决方案吗?

最佳答案

我更喜欢在 jar/war 文件准备好后构建镜像(另一个选项是通过 plugin 将其与 maven 集成)。但在这两个选项中,您都需要先创建一个 Dockerfile。

您有 4 个应用程序,因此需要 4 个容器(一个容器 - 要做一件事或运行一项服务)。每个容器都有自己的基础镜像和设置,具体取决于您运行应用程序的方式。

例如,Dockerfile 将 jar 文件复制到镜像并使用 openjdk 运行它:

FROM openjdk:8-jdk
VOLUME /tmp

COPY ./target/application.jar /application.jar
RUN bash -c 'touch /application.jar'

ENTRYPOINT exec java $JAVA_OPTS -jar /application.jar
EXPOSE 7000

要运行 war 文件,您可能需要 tomcat image .

为自定义应用程序添加 Dockerfile 后,下一步是创建 docker-compose.yml文件。它将包括运行整个项目所需的所有容器(4 您的自定义应用程序、数据库或任何其他服务)。

version: '3'
services:
application:
build: ./path_to_dockerfile
ports:
- 7000:7000
environment:
- DATABASE_PASSWORD=ASKWejuFy1aPL3dzNv
- ... any other credentials or application configs should be passed by environment variables
- JAVA_OPTS=-Xmx512m -Xms256m -Djava.security.egd=file:/dev/./urandom -Xdebug -Xrunjdwp:server=y,transport=dt_socket,suspend=n
restart: always
depends_on:
- application-db
application-db:
build: ./path_to_db_dockerfile # you can set image name without dockerfile for db
ports:
- 5432:5432
restart: always
volumes:
- db-data
environment:
- DATABASE_PASSWORD=ASKWejuFy1aPL3dzNv

#
# Configuration for other containers
#

volumes:
db-data:

在那里,您将设置 Dockerfile 的路径,创建具有依赖项的专用网络,一切准备就绪后,您可以使用 docker-compose up 命令运行它。

关于java - 如何快速将maven项目集成到docker中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45853607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com