Tag: maven plugin

docker-maven-plugin:如何定义哪些testing运行哪个图像?

使用fabric8io / docker-maven-plugin ,我想对特定的图像运行特定的testing: testingA应该对Docker镜像A运行 testingB应该运行在Docker镜像B上 等等 什么是最好的方法来做到这一点? 我大概可以使用Mavenconfiguration文件,但是我必须明确地运行每个configuration文件。 有没有办法使用mvn verify运行所有testing?

生成PDF PDFBox无头泊坞窗容器失败

我正在使用pdfbox在Java中创buildpdf。 从我的Mac作为普通的Java应用程序运行时,这工作正常。 然而,用例是从服务器端运行这个从Web浏览器生成PDF。 我已经将应用程序部署到docker容器,现在无法工作(加载字体时的各种错误 – arrayindexoutofbounds,eofexception等)。 这似乎是由于pdfbox在java.awt.headless模式下运行的方式,因为当我输出在Mac上运行的模式时,它将为无头模式返回false,而在服务器上返回true。 我在代码中明确地设置了java.awt.headless=fals e设置,现在又出现了一些其他的错误。 缺less与X服务器等有关的图书馆我已经安装了这些,但现在有错误: java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable. 围绕SO等有一些build议,例如设置DISPLAY =:0.0等,但这些都没有工作。 在Docker容器中运行显然有些复杂,但任何人都可以在这里提出一些build议吗? 我猜测使用虚拟xserver是答案,但我很难设置这个,然后设置适当的xsessionAuthoriy / DISPLAY /等

在父pom构build的最后端运行docker-maven-plugin

我正在尝试构build包含构build父POM文件期间构build的一组.jar文件的docker映像。 直到现在我发现的情况是,特定模块的单个构build创build单独的泊坞窗图像。 我的docker形象包含卡拉夫部署捆绑。 在某个时候,我实现了创builddocker工人,但是当一切都build立起来的时候。 恐怕docker-maven-plugin可能不支持我想从bundle的特定文件夹(每个子项目正在将其捆绑包部署到特定文件夹)创builddocker镜像的情况。 现在我发现,父POM包types只支持三个阶段,但无论如何 – 所有这些都是在构build期间作为第一个项目运行。 所以问题是: 是否有可能创builddocker图像 包含在构build父POM项目期间构build的部署到一个文件夹的所有包 运行一些家长POM目标后自动运行 母体POM的某些部分最终可能与我的需求无关 <build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <inherited>false</inherited> <version>0.4.10</version> <configuration> <imageName>test1</imageName> <dockerDirectory>../karaf-deploy</dockerDirectory> <resources> <resource> <targetPath>../karaf-deploy/</targetPath> <directory>../karaf-deploy/</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>

docker工具的maven插件(例如运行所需的数据库)

maven项目的图像应该是直截了当的,因为maven知道如何构build(并且可以知道如何运行) 如何build立docker的形象,并与Maven运行? 比方说,该应用程序还需要MongoDB,我可以作为docker run -p 27017:27017 mongo 。 是否也可以指定一些Maven插件?

在Windows中fabric8io docker-maven-plugin

我正在尝试使用maven,docker和Cassandra进行一些集成testing。 现在,我写了一个虚拟代码来查询Cassandra并试图运行Cassandra容器。 这是关于插件的pom.xml: <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.14.1</version> <configuration> <images> <image> <alias>some-cassandra</alias> <name>cassandra:3.0</name> <run> <ports> <!–<port>cassandra.port:9042</port>–> <port>9042:9042</port> <port>9160:9160</port> <port>7199:7199</port> <port>7001:7001</port> </ports> <wait> <log>database system is ready to accept connections</log> <time>30000</time> </wait> </run> </image> </images> </configuration> <executions> <execution> <id>start</id> <phase>pre-integration-test</phase> <goals> <!– "build" should be used to create the images with the artifact –> <goal>start</goal> </goals> </execution> […]

使用Maven插件无法读取Docker内部的用户input

描述 我正在编写一个简单的控制台应用程序,在Docker容器中启动,读取用户input并处理它。 为了实现Docker自动化,我使用了docker-maven-plugin 。 读取用户input的代码如下: new Scanner(System.in).nextLine() 还尝试了以下内容: new BufferedReader(new InputStreamReader(System.in)).readLine() 在这两种情况下运行没有Docker的应用程序。 我用命令运行docker: mvn clean docker:build docker:run 但是,在Docker中,当涉及到用户input时,代码只返回null ,不会阻止用户input。 在Scanner情况下,我得到了java.util.NoSuchElementException: No line found ,这是基本相同的。 我发现StackOverflow类似的问题,通过命令行参数-i -t似乎帮助。 有什么办法可以将这些命令行参数添加到Maven运行configuration? 或者为什么会出现这个问题 信息 Maven版本:3.3.9 Docker版本:1.13.1

Spotify docker-maven-plugin未经授权:需要身份validation公开回购

我在使用下面的命令将docker映像推送到集线器时遇到问题: mvn clean package docker:build -DpushImage 每次我得到以下回应: [WARNING] Failed to push jdruwe/k8s-product-owner, retrying in 10 seconds (5/5). … [ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default-cli) on project k8s-product-owner: Exception caught: unauthorized: authentication required -> [Help 1] 当我尝试使用以下命令之一login时,我不断收到login成功的错误 docker login -u jdruwe https://index.docker.io/v1/ OR docker login 我确实在集线器上创build了一个空的回购,试图解决它: 有任何想法吗?

Docker Maven Spotify插件 – 可能切换到非安全registry

我正在使用Spotify Maven插件在执行某些Maven目标时自动化构build和部署Docker镜像。 但是,我正在运行可通过以下主机访问的私有不安全registry:server.mydomain.com:5000。 但是,我似乎无法停止插件强制安全推送到存储库? 它使用https://server.mydomain.com:5000 。 有什么办法强制插件不使用HTTPS? 谢谢。 编辑: 当前插件POMconfiguration: <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.3</version> <configuration> <imageName>server.mydomain.com:5000/${project.artifactId}</imageName> <baseImage>java</baseImage> <entryPoint>["java", "-jar", "/${project.build.finalName}-packaged.jar"]</entryPoint> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}-packaged.jar</include> </resource> </resources> <imageTags> <imageTag>${project.version}</imageTag> <imageTag>latest</imageTag> </imageTags> <retryPushCount>0</retryPushCount> </configuration> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> <execution> <id>push-image</id> <phase>deploy</phase> <goals> <goal>push</goal> </goals> </execution> </executions> </plugin>

澄清Mavenconfiguration文件和阶段

在我的maven项目中,我有多个mavenconfiguration文件。 在每个configuration文件中,我有docker-maven-plugin和maven-failsafe-plugin 。 这是我如何约束目标和阶段。 泊坞窗- Maven的插件 <phase>pre-integration-test</phase> <goals> <goal>start</goal> </goals> <phase>post-integration-test</phase> <goals> <goal>stop</goal> <goal>remove</goal> </goals> Maven的故障保护,插件 <phase>integration-test</phase> <goals> <goal>integration-test</goal> </goals> <phase>verify</phase> <goals> <goal>verify</goal> </goals> 我有每个数据库types的configuration文件(即MySQL,Postgres等)。 我想要做的是在docker上运行我的集成testing与每个数据库types。 我的问题是,我可以运行mvn多个configuration文件(即mvn clean install -P local-postgres,local-mysql ),以便每个configuration文件一个接一个地执行? 我的要求是不要同时有2个docker集装箱。 我所观察到的是,所有configuration文件的pre-integration-test阶段都是先运行的,并且以The name "/apim-postgres" is already in use by container xxxxx失败。 当多个configuration文件被给出时,maven阶段应该如何工作? 有没有办法让我的要求得到满足?