问题标签 [docker-maven-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1286 浏览

docker - 在 Jenkins docker 容器中使用 fabric8 docker-maven-plugin

我正在使用 fabric8 的 docker -maven-plugin来构建和推送我的 docker 镜像。我做类似的事情:

在我的开发环境和 Jenkins 中。但这是我的问题。

我让 Jenkins 在 docker Swarm 中运行。

请注意,我有一个从主机/var/run/docker.sock到容器的绑定挂载/var/run/docker.sock

然后我通过运行在容器中安装 Docker 二进制文件:

最后我将jenkins用户添加到docker组中

实际上,我将jenkins/jenkins使用上述命令将图像作为我的根来构建我自己的 docker 图像。

然后我登录到 Jenkins,按如下方式创建我的管道

当我运行管道时,出现以下错误:

注意 Jenkins 运行的命令

它使用我在Jenkins管道中使用的maven工具'm3'并运行maven命令mvn clean install docker:build并抱怨权限

这是踢球者。我进入詹金斯容器

请注意,我不是以 root 用户身份进入的,我实际上是jenkins用户。然后我进入 pom.xml 文件所在的项目并运行

它有效!!!!图像已构建。为什么当我在容器内时它可以工作,而不是当我从 jenkins ui 运行它时。jenkins UI 是否使用不同的用户?

0 投票
0 回答
694 浏览

maven - 使用fabric8 docker-maven-plugin 在远程docker daemon 上构建镜像

我正在尝试使用fabric8docker-maven-plugin在我的gitlab ci 管道中构建docker 图像。

背景:

我的图像构建阶段gitlab-ci.yml如下所示:

我的 pom 有

我的 Dockerfile 包含

但是构建失败并出现错误

问题:

问题似乎是,在从 构建的容器中,maven$JAVA_IMAGE正在使用docker:dind容器的 docker 守护进程 (at tcp://docker-build:2375) 来构建my-image(如预期的那样),但docker:dind容器无权访问$JAVA_IMAGE容器上的文件./some/directory/。有没有办法让它访问这些文件,或者将这些文件复制到docker:dind容器中?还是有更好的方法来做我想做的事情(同时保持服务映像docker:dind和构建映像之间的分离$JAVA_IMAGE)?

0 投票
2 回答
7105 浏览

docker - 容器初始化导致 \"rootfs_linux.go:58: 挂载到 rootfs 导致不是目录

我在 Windows 7 上的 docker 配置有问题。我正在使用 docker 工具箱。

以前我的配置运行良好,但现在它会导致错误。

DOCKER> I/O Error [Unable to start container id [7b5a4bd7ccfd] : OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:430: container init caused \"rootfs_linux.go:58: mounting \\\"/c/Users/myProject/zip/src/elastic/elasticsearch.yml\\\" to rootfs \\\"/mnt/sda1/var/lib/docker/overlay2/f2f7c25fc05de0ec45cef945b0917beefe26bd1d0a31546378c2ffabfb905ccb/merged\\\" at \\\"/mnt/sda1/var/lib/docker/overlay2/f2f7c25fc05de0ec45cef945b0917beefe26bd1d0a31546378c2ffabfb905ccb/merged/usr/share/elasticsearch/config/elasticsearch.yml\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type (Bad Request: 400)]

我调查了问题,发现 docker mount elasticsearch.yml 文件作为文件夹,但在主机中它作为文件存在。有谁知道怎么可能?

我希望 docker 将该文件作为文件找到。

非常感谢

0 投票
0 回答
100 浏览

java - 在 maven-docker-plugin '~/.m2' 中无法相对化,无法解析任意用户主路径

我有一个由其他人编写的父 pom,它用于在本地构建和运行 docker 映像。当我尝试使用父 pom.xml 进行构建时,出现以下错误,'~/.m2' cannot be relativized, cannot resolve arbitrary user home paths. 我认为错误在于将卷绑定到图像。这就是它在父 pom.xml 中的定义方式

上面的项目在 mac os 上运行良好,我使用的是 windows 机器。我安装docker for windows并阅读了fabric8 文档,了解如何将卷绑定到您的图像,但找不到与我的问题相关的任何示例。

0 投票
1 回答
395 浏览

maven - 使用 fabric8 docker-maven-plugin 将 MANIFEST.MF 添加到 docker 映像

我已经使用自定义 Dockerfile 为 Servlet WebApp 成功创建了一个带有 fabric8 插件的 docker 映像。

该图像基于tomcat,因此我需要将应用程序放入tomcat/webapps 以优化图像,我不是直接插入战争,而是在两个单独的层中插入它的扩展内容:一层用于WEB-INF\lib所有其他层。

这样,如果我创建一个新版本但库与旧版本相同,远程服务器只需要拉应用层

我正在从 maven-war-plugin 生成的文件夹“target/MyProject”中复制战争的内容,然后从它创建“MyProject.war”但是这个文件夹不包含META-INF\MANIFEST.MF文件(它是直接在战争?)

有没有办法在某个文件夹中创建清单文件,以便我可以将其复制到 docker 映像中?

这里是 pom.xml 的一部分

0 投票
1 回答
1849 浏览

maven - 使用 Google Cloud Build 时如何将私有存储库凭据传递给 maven docker 映像

我正在尝试使用 Google Cloud Build 来构建我的 Java 应用程序。它允许使用所谓的云构建器——不同构建器的 docker 镜像。我正在使用 Maven。所以问题是我必须使用私有存储库(工件)来部署工件。此代表受密码保护,我不知道如何将这些凭据传递给 GC maven docker 容器。

我看到唯一可能的方法是:

  1. 运行将更新 maven 容器 settings.xml 的 shell 脚本,如下所示:

    /li>
  2. 在 cloudbuild.yml 中设置环境变量

还有其他优雅的方式来实现我想要的吗?

0 投票
2 回答
12851 浏览

java - HttpHostConnectException:连接到 localhost:2375 [localhost/127.0.0.1] 失败:连接被拒绝

[错误] 无法在项目 Bookstore 上执行目标 com.spotify:docker-maven-plugin:1.0.0:build(默认):捕获异常:java.util.concurrent.ExecutionException:com.spotify.docker.client.shaded。 javax.ws.rs.ProcessingException:org.apache.http.conn.HttpHostConnectException:连接到 localhost:2375 [localhost/127.0.0.1] 失败:连接被拒绝

为什么这个异常不断发生,我该如何解决它,我正在从 war 文件构建 docker 映像。

pom.xml

DockerFile

更新

现在关闭防火墙后出现此错误,该怎么办?

0 投票
0 回答
570 浏览

docker-maven-plugin - Docker Maven Plugin 1.4.13 版本构建时间太长

更新dockerfile-maven-plugin版本1.4.101.4.13构建时间后,比以前慢了近 4 倍。
对于这两种情况,我的 Maven 配置是相同的。

git repo :示例 pom 文件 克隆后通过运行项目mvn clean install -Pdcoker

打开问题链接

0 投票
0 回答
389 浏览

maven - 将占位符传递给从 docker-maven-plugin (io.fabric8) 构建的 docker 映像

我使用 io.fabric8:docker-maven-plugin 从 maven 构建 docker 映像。

我希望容器像这样运行:

java -jar -Dspring.profiles.active=prod /maven/myapp-1.4.3.jar

java -jar -Dspring.profiles.active=dev /maven/myapp-1.4.3.jar

所以我实际上希望图像通过 -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE 并且该变量将在启动容器时通过 docker run 传递:

docker run --env SPRING_PROFILES_ACTIVE=prod

但是,看起来容器运行以下命令:

java -jar -Dspring.profiles.active=$SPRING_PROFILES_ACTIVE /maven/myapp-1.4.3.jar

并且 $SPRING_PROFILES_ACTIVE 不会被环境变量替换。

pom.xml:

0 投票
1 回答
600 浏览

docker - 在 docker 多阶段映像中跨阶段传递环境变量

我有一个具有 4 个较低层的 docker 映像。

我想使用多阶段减小当前映像层的大小,但这会导致跨阶段丢失环境、端口和 cmd 配置属性。有没有办法在Dockerfile.