Tag: maven

Spotify docker maven构build多个图像

我正在使用Spotify的Docker Maven插件,并希望构build两个不同的映像,一个是数据库(MariaDB),另一个是Java EE映像(Glassfish)。 我设法让Maven在单独运行时创build图像,但是当我尝试在同一个POM文件中运行时,它只会创build第一个图像。 我曾尝试在单个插件中放置两个configuration部分,并获取以下错误: [错误]无法parsing的POM C:\ Users \ 607819425 \ Documents \ InteliJProjects \ feature_docker \ pom.xml:重复的标记:'configuration'(position:START_TAG seen … \ r \ n … @ 300:32) @行300,栏32 – > [帮助2] Pom文件与2个configuration标签在一个插件 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.11</version> <configuration> <imageName>glassfish</imageName> <dockerDirectory>glassfish</dockerDirectory> <baseImage>java</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint> <!– copy the service's jar file from target into the root directory […]

问题与jenkinspipe道脚本和docker工人图像

我尝试在Docker容器中构build项目,图像如下所示: FROM maven:3.3.9-jdk-8 WORKDIR mvnBuildDir ENTRYPOINT ["mvn"] 如果我运行我的容器像下面一切正常。 docker run -v /home/user/Worspace/myMavenProject:/mvnBuildDir myMaven3 clean package 但是,如果我在我的Jenkinsfile中尝试这个,我得到了一个错误,没有告诉我什么。 Jenkinsfile: //… def maven = docker.image("myMaven3"); maven.inside("-v ${workdir}:/mvnBuildDir"){ stage "build and test" sh "mvn clean install" } //.. 错误: [Pipeline] { [Pipeline] stage (build and test) Entering stage build and test Proceeding [Pipeline] sh [master] Running shell script + […]

Dockerizing一个使用oracle-ojdbc的maven应用程序:你如何获得驱动程序?

我是一个没有经验的docker用户,我正在试图使用Oracle dockerize我的Maven Web应用程序。 当我尝试使用我的maven图像构build时,它失败地说:“在中央找不到工件com.oracle:ojdbc14:jar:10.2.0.4.0”,这是因为我没有将驱动程序包含在任何地方。 我的问题是我怎样才能让docker意识到司机的位置,从而能够build立应用程序? 谢谢

在Docker容器中运行Maven Web应用程序

我试图用Maven构build一个简单的Web应用程序,并在Docker容器内运行Tomcat7。 这是我的结构: – Dockerfile – pom.xml – src/main/webapp/index.hmtl 这是我的Dockerfile: FROM java:8 # Install maven RUN apt-get -y update && apt-get install -y maven WORKDIR /code # Prepare by downloading dependencies ADD pom.xml /code/pom.xml # Adding source, compile and package into a fat jar ADD src /code/src RUN ["mvn", "package"] EXPOSE 8080 CMD ["mvn", "tomcat7:run"] 我正在构buildDocker镜像 […]

Docker构build所需的敏感信息

为了运行我的Java应用程序的docker构build,我需要敏感信息(一个密码来访问nexus maven仓库)。 什么是使其可用于docker构build过程的最佳方式是什么? 我曾想过将〜/ .m2 / settings.xml添加到容器中,但它位于当前目录/上下文之外,并且ADD无法访问它。 更新:在我当前的设置中,我需要凭据来运行构build和创build图像,而不是稍后基于创build的图像运行容器

如何dockerize Maven项目? 以及有多less种方法来完成它?

我是新来的Docker,并不知道如何用maven运行一个java项目,即使我已经阅读了许多文档,并尝试了很多方法。 我应该使用Dockerfile生成图像吗? 当使用Dockerfile在主机上运行maven项目时,有什么命令?

在离线构build中cachingMaven父项

TL / DR:如何cachingpom.xml文件的<parent>以便我的构build可以在离线模式下运行? 我正在使用Docker来构build一个Maven项目。 我的目标是向构build添加两个步骤:一个下载所有的依赖关系,另一个构build项目。 以下是我的Dockerfile到目前为止的样子: FROM maven:3.3-jdk-8 # Download the project dependencies (so they can be cached by Docker) ADD pom.xml /runtime/ WORKDIR /runtime RUN mvn dependency:go-offline RUN mvn dependency:resolve-plugins # Mount the local repository ADD . /runtime # Build the service RUN mvn clean package -o -DskipTests 这似乎为插件工作正常。 我检查了/root/.m2/repository ,一切似乎都是按顺序的。 编辑:当双重检查/root/.m2/repository目录,它不再存在。 出于某种原因,Maven并没有将任何依赖保存到这个位置。 编辑2:在构buildDocker镜像之后,没有/root/.m2/repository目录。 […]

Maven构build和maven-failsafe插件 – 分叉虚拟机终止,没有妥善说再见

我使用Docker和https://github.com/fabric8io/docker-maven-plugin进行集成testing。 在我的Windows 10( 在更新到Windows 10 1709之后 )我的机器遇到以下错误与我的Maven 3.5.0版本: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-failsafe-plugin:2.20.1:verify (default) on project api: There are test failures. [ERROR] [ERROR] Please refer to D:\Projects\example\api\target\failsafe-reports for the individual test results. [ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream. [ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying […]

如何构build一个Java应用程序的docker容器

我想要做的是为我的Java应用程序构build一个docker镜像,但是对于大多数编译语言来说,下面的考虑应该是真实的。 问题 在我的构build服务器上,我想为我的应用程序生成一个docker镜像作为交付物。 为此,我必须使用一些构build工具(通常是Gradle,Maven或Ant)来编译应用程序,然后将创build的JAR文件添加到泊坞窗图像中。 因为我希望Docker镜像只执行JAR文件,所以我将从已经安装了Java的基础镜像开始。 有三种方法可以做到这一点: 让构build工具控制过程 在这种情况下,我的构build工具控制整个过程。 所以它准备了JAR文件,在创buildJAR之后,它会调用Docker来创build映像。 这是因为事先创build了JAR,而Docker可能忘记了创buildJAR所需的构build过程。 但是我的Dockerfile不再是独立的。 它取决于在Docker之外发生的步骤。 在我的Dockerfile中,我将有一个COPY或ADD语句,它应该将JAR文件复制到图像中。 当事先未创buildjar时,这个语句会失败。 所以只是执行Dockerfile可能不起作用。 如果您想要使用DockerHub上的自动构buildfunction来构build使用当前Dockerfile的服务,就会成为一个问题。 让Docker控制构build 在这种情况下,创build映像所需的所有步骤都会添加到Dockerfile中,以便通过执行Docker构build来创build映像。 这种方法的主要问题是没有办法添加到Dockerfile命令,这些命令应该在创build的docker镜像之外执行。 这意味着我必须将我的源代码和构build工具添加到泊坞窗图像中,并在图像中构build我的JAR文件。 这将导致我的图像比它必须是由于所有添加的文件在运行时将是不必要的。 这也会为我的图片添加额外的图层。 编辑: 正如@ adrian-mouat指出,如果我要添加源,build立应用程序并删除一个RUN语句中的源,我可以避免添加不必要的文件和图层到Docker镜像。 这将意味着创造一些疯狂的链式命令。 两个独立的版本 在这种情况下,我们将构build分为两部分:首先,使用构build工具创buildJAR文件,并将其上传到存储库(Maven或Ivy存储库)。 然后,我们触发一个单独的Docker构build,它只是从存储库中添加JAR文件。 结论 在我看来,更好的方法是让构build工具控制过程 。 这将导致一个干净的docker形象,因为图像是我们想要传递这是重要的。 为了避免有一个潜在的不工作的Dockerfile应该被创build作为构build的一部分。 所以没有人会意外地使用它来开始一个破碎的构build。 但是这不允许我与DockerHub集成。 题 有没有另一种方法我失踪?

如何设置Maven选项来运行发布或快照

我使用Jenkins服务器作为CI。 我正在使用maven docker来运行maven任务。 所以这是我的问题和我的疑惑。 与jenkins我使用maven插件来configuration和编译maven任务。 如果我想构build,我运行Build with Parameters ,如果我想创build一个快照或发行版,我运行Perform Maven Release ,在这里我可以指定版本。 但是由于我必须使用mvn命令的参数,因此docker更复杂。 所以: 如何设置选项来创build发行版或快照版本? 我有我的nexus url的settings.xml文件,也与用户/密码,但问题是与docker使用它。 我正在使用docker.io/maven图像。