Tag: maven

在Windows 10与Maven的Docker

尝试在Windows 10上使用Maven运行docker自动化testing.Windows 10和docker存在许多问题。 我们的代码在Mac或Linux上运行良好。 我从Powershell运行它,但从terminal(CMD)得到同样的问题 它看起来像Win10的权限问题本地共享文件夹,但我不知道。 VirtualBox 5.0.6 Docker 1.8.2版,build 0a8c2e3 Maven插件 <pluginManagement> <plugins> <plugin> <groupId>org.jolokia</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.13.5</version> </plugin> </plugins> </pluginManagement> 这是错误的: [ERROR] ←[31mDOCKER> invalid mode for volumes-from: /opt/myapp (Internal Server Error: 500)←[m [ERROR] ←[31mDOCKER> Error occurred during container startup, shutting down…←[m 在Windows 10上有没有人遇到这个错误?

无法(apt-get)在docker中安装软件包

我安装了Ubuntu 14.04虚拟机并运行docker(1.11.2)。 我尝试构build示例图像( 这里 )。 docker文件: FROM java:8 # Install maven RUN apt-get update RUN apt-get install -y maven …. 我得到以下错误: Step 3: RUN apt-get update –> Using cache —>64345sdd332 Step 4: RUN apt-get install -y maven —> Running in a6c1d5d54b7a Reading package lists… Reading dependency tree… Reading state information… E: Unable to locate package […]

在容器中安装Docker,供GitLab CI构build使用

我是Docker的新手,但有一个Java Web应用程序项目,我的Maven构build生成并安装Docker镜像。 即 mvn clean install 生产: REPOSITORY TAG IMAGE ID CREATED SIZE registry.gitlab.com/me/myapp 0.0.1-SNAPSHOT-dev 12d69e5ab28b 45 minutes ago 666 MB 我正在使用Spotify的Maven插件来构build这个,然后我可以使用以下方法将其部署到存储库: mvn docker:push 这很好。 但是:我使用CI的GitLab,我的.gitlab-ci.yml文件包含: image: maven:3.3.9-jdk-8 build: script: "mvn clean install && mvn docker:push" 这几乎工作,但因为Docker没有安装在我的运行构build的容器中失败: [INFO] Building image registry.gitlab.com/me/myapp Dec 31, 2016 8:30:45 PM org.apache.http.impl.execchain.RetryExec execute INFO: I/O exception (java.io.IOException) caught when processing […]

如何从外部回购使用docker-compose和maven snaphot依赖关系

我有几个Java组件(WAR),他们都暴露Web服务,他们碰巧使用相同的消息对象(DTOs)。 这些组件都与DTO共享一个通用的Maven依赖项,我们称之为“messaging-dtos.jar”。 这个常见的依赖项有一个版本号,例如messaging-dtos-1.2.3.jar,其中1.2.3是该工件的maven版本,该工具发布在nexus库等文件中。 在maven的世界里,docker放在一边,使用封闭的版本依赖关系可能会非常繁琐。 解决scheme是maven SNAPSHOTS。 例如,当您使用Eclipse IDE,并将依赖项设置为SNAPSHOT版本时,这将导致IDE从当前工作空间取代版本,从而节省时间,而不必在每次创build一个小型文件时closures某个版本更改。 现在,我不知道如何让这个开发周期与docker和docker-compose一起工作。 我有“Component A”,它存在于自己的git仓库中,而messaging-dtos.jar存在于另一个git仓库中,并且以nexus的forms发布。 我的Dockerfile simpy在某个时候执行了一个RUN mvn clean install ,为这个依赖项(我们使用Dockerfiles进行实际的部署,但是对于我们使用docker-compose的本地环境)提供了closures的版本。 这适用于封闭的版本,但不适用于SNAPSHOTS(至less不适用于本地SNAPSHOT,我可以在联机中发布SNAPSHOT,但是创build了另一组问题,用不同的内容覆盖相同的SNAPSHOT等,在那里,我想不要回来)。 我一直在考虑在某些时候使用docker-compose卷,也许是为了装载我的本地.m2文件,所以ComponentA可以在构build时find快照依赖项,但是这并不足够“干净”,构build会部分取决于Dockerfile中指定的任何内容,部分取决于本地构build的东西。 我不确定这是否是正确的方法。 有任何想法吗? 谢谢!

Docker-> Maven-> Failsafe-> Surefire启动fork失败,“分叉虚拟机终止,没有正确说再见。 虚拟机崩溃或System.exit调用?

按照标题:我试图从集装箱的jenkins奴隶运行Maven自动化testing,经过一个星期的斗争,现在我已经没有想法。 它的工作原理就像使用RAM 4G的AWS实例一样,但不受限制(在RAM和CPU)容器上,它会失败,出现如下错误。 唯一的情况是,当我禁用分叉故障安全插件,但这不是一个选项前进。 我尝试了各种使用Google可以find的Java / Maven / Failsafe / Surefire选项,但没有运气(比如添加全局Java -Xmx选项以及在pom.xml中的每个插件)。 有没有人像这样成功地运行它? 这似乎应该更容易处理,但如果我有任何的话,我会把我头上的所有头发都拉出来。 我仍然不喜欢承认失败的想法。 请帮忙! 这些是插件在失败后创build的转储: 故障安全-summary.xml: <?xml version="1.0" encoding="UTF-8"?> <failsafe-summary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-sure fire-plugin/xsd/failsafe-summary.xsd" result="254" timeout="false"> <completed>0</completed> <errors>0</errors> <failures>0</failures> <skipped>0</skipped> <failureMessage>org.apache.maven.surefire.booter.SurefireBooterForkException: The forked VM terminated without properly saying goodbye. VM cras h or System.exit called? Command was /bin/sh -c cd /var/lib/jenkins/workspace/ui_acceptance_test_chrome_docker_freestyle &amp;&amp; /usr/lib/jvm/java-1.8-openjdk/jre/bin/ja va […]

Docker中的应用程序服务器 – 使用IntelliJ进行战争部署

亲爱的程序员, 我正在考虑设置我的Docker容器的开发,因为我目前正在使用Windows,现在我的设置如下: 一个包含一个jboss的docker镜像,它已经启动并且正在运行 在我的windows文件系统中检出一个hg repo,导入到IntelliJ中 映射到泊坞窗镜像中的部署文件夹的共享文件夹 每当我想部署我的战争,我会让IntelliJ构build的产品作为爆炸战争输出目录$ THE_SHARED_FODLER / mywar.war。 然后,我将用mywar.war.deploy触摸相同的回购文件。 由于这是共享的jboss泊坞窗图像的部署文件夹,发射的Jboss现在部署我的战争。 然而,因为所有的IntelliJ知道我已经构build了一个文件系统的工件,所以如果我以普通的方式部署这场战争,我不会得到任何好的支持(例如,拥有本地jboss和一个部署爆炸神器的jboss-run-configuration)。 前端的东西(html / css)总是可以用grunt或者类似的方式来解决,但是对于jar-libs来说,我现在提出的最好的解决scheme是: 使用maven重buildjar并将其复制到$ THE_SHARED_FOLDER / mywar.war / web-inf / lib / 触摸文件mywar.war.redeploy 但是,这会使代码更改的周转时间大约为30秒。这里提出了一个相当悬而未决的问题:在泊坞窗映像中运行的应用程序服务器的发展方向是什么? 今天怎么样? 你有没有尝试类似的东西,并决定docker集装箱是不是这样的路? 任何关于这个问题的意见都非常欢迎:-) Brgrgs stevie电视

有Spring Boot的Docker和Eureka无法注册客户端

我有一个使用Spring Boot + Docker Compose + Eureka的简单演示。 我的服务器使用以下应用程序属性在端口8671上运行: server: port: 8761 eureka: instance: prefer-ip-address: true client: registerWithEureka: false fetchRegistry: false server: waitTimeInMsWhenSyncEmpty: 0 我的Eureka客户端在9000端口上运行,具有以下应用程序属性: server: port: 9000 spring: application: name: user-registration eureka: client: registerWithEureka: true fetchRegistry: true serviceUrl: defaultZone: http://localhost:8761/eureka/ instance: prefer-ip-address: true 当我在父Maven项目中启动我的docker.compose文件时,这是我的docker-compose文件的内容: eureka-server: image: rosenthal/eureka-server ports: – "8761:8761" user-registration: image: rosenthal/user-registration ports: – […]

在本地开发中使用Docker

我正在学习如何在基于java / spring的应用程序中使用Docker。 经过快速研究和阅读一些教程,我对在日常开发中使用Docker存在怀疑。 我不是在谈论CI或生产环境,只是在本地。 通常我运行例如使用mvn(运行目标)的embedded式Tomcat。 与docker的方法,我需要打包应用程序,重build容器,然后重新启动它(大卫Gageot在DockerCon16确认)。 乍一看,这将需要更多的时间。 每次改变时,都应该build立新的图像。 使用Docker localy的优势在哪里? 当然,我知道应用程序运行在“与生产环境相同”的环境中。

Docker – maven在运行时连接到特定的存储库

我有一个镜像,需要在运行时连接到一个仓库,但它接触到Docker容器不能读取位于主机的〜/ .m2 / settings.xml文件。 有什么办法让docker现在在mavenconfiguration文件的位置? 或者实际上将mavenconfiguration文件导入容器?

如何可靠地使用docker-compose的本地Maven镜像代理?

我正在努力将我们的Maven构build过程迁移到我们现有的Java项目的Docker中。 我是一位使用Maven的经验丰富的Java开发人员,但仍在学习Docker。 我们的主要问题是,默认情况下,工件没有被caching,所以我们每五分钟下载一半的互联网,加上我们在当地老年人Nexus服务器上也有东西。 由于这是自动集成testing,我们不希望在Docker之外构build工件。 仔细考虑之后,我发现一个好的解决scheme可以是为每个开发人员运行一个Maven镜像代理,在这里可以保存本地configuration,然后Docker实例就可以引用这个代理。 手动运行Nexus3容器 docker run -p 8081:8081 –name nexus sonatype/nexus3 (加上一些手动configuration代理我们的内部存储库)到目前为止工作得很好,但不是由docker-compose控制的。 不幸的是,除了硬编码机器的外部IP号码之外,我不能看到客人访问主机(其中端口8081可用)的方式,并且我也看不到一种方式使docker组合负责确保联系人容器运行时,我的dockerbuild设需要它。 我目前使用这个作为Docker中的settings.xml文件: <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <mirrors> <mirror> <id>local-nexus</id> <name>Local Nexus</name> <!– Host external IP number –> <url>http://1.2.3.4:8081/repository/sbforge_central/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> <localRepository>/usr/share/maven/ref/repository</localRepository> </settings> 我应该如何处理这个? 我看到两种情况。 我怎样才能得到一个可靠的主机名称? Linux是必需的,其他平台将是不错的。 如何使docker-compose控制这个容器,以便在运行docker-compose build以便docker可以确保nexus容器的主机名parsing? 将成品包装起来时不需要。 还是有更聪明的方法?