Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven';Dockerfile中的生命周期_Maven_Docker_Dockerfile - Fatal编程技术网

Maven';Dockerfile中的生命周期

Maven';Dockerfile中的生命周期,maven,docker,dockerfile,Maven,Docker,Dockerfile,首先谢谢你抽出时间。我试图在dockerfile中运行maven命令: # Base container contains maven, jdk on ubuntu FROM maven:3-jdk-8 # copy my build config pom file to container ADD pom.xml /app/ # copy the source file directory to the container ADD src/ /app/src/ # move the app d

首先谢谢你抽出时间。我试图在dockerfile中运行maven命令:

# Base container contains maven, jdk on ubuntu
FROM maven:3-jdk-8
# copy my build config pom file to container
ADD pom.xml /app/
# copy the source file directory to the container
ADD src/ /app/src/
# move the app directory inside container to perform mvn buill
WORKDIR /app/
RUN ["mvn", "dependency:resolve"]  
RUN ["mvn", "verify"]
# resolve dependency offline as suggested by Nicolas
#RUN mvn dependency:go-offline
# build by using maven
RUN mvn package 
但我对代理有问题:

$ docker build -t mavenimagen .
Sending build context to Docker daemon 124.9 kB
Step 1 : FROM maven:3-jdk-8
 ---> b2ef69e414f5
Step 2 : ADD pom.xml /app/
 ---> Using cache
 ---> 57e5b52fe34b
Step 3 : ADD src/ /app/src/
 ---> Using cache
 ---> ace1a117cb4f
Step 4 : WORKDIR /app/
 ---> Using cache
 ---> da544b2298a1
Step 5 : RUN mvn dependency:resolve
 ---> Running in 26258aec0093
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-jar-plugin:2.4: Plugin org.apache.maven.plugins:maven-jar-plugin:2.4 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin:jar:2.4
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-shade-plugin/2.1/maven-shade-plugin-2.1.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-shade-plugin:2.1: Plugin org.apache.maven.plugins:maven-shade-plugin:2.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-shade-plugin:jar:2.1
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-clean-plugin:2.5: Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom
我想我必须添加settings.xml,但我不知道是否必须添加到项目的根目录或其他目录中


欢迎

您还没有发布确切的代理问题,但不管是什么,您可能必须将自定义的
settings.xml
文件(
ADD settings.xml/app/
)放入Maven中(
RUN mvn-s settings.xml package


如果它将是多个调用,我建议将
settings.xml
放在
~/.m2/
中,以便在每次Maven调用时默认使用它。

问题解决了,问题是代理

我不得不在dockerfile中添加这一行

ADD settings.xml /root/.m2/settings.xml

谢谢

这是您尝试构建的唯一应用程序吗?如果不是,我建议构建两个图像,如下所示:

  • Maven构建映像:包含java和Maven,设置xml位于~/.m2中。此映像具有源代码的卷装载,因此可以在CI/CD管道中多次使用
  • 应用程序映像:此映像只有java来运行应用程序,即使在生产环境中也可以用来运行容器

我试过你的建议,但没有看到结果。顺便说一下,我修改了我的问题,添加了我的代理问题。谢谢你的回答和时间:)不,我知道是哪个Maven电话引起了这个问题。它是
运行mvn依赖项:解析
。如果将其更改为
RUN mvn-s settings.xml dependency:resolve
,则一切正常。或者,如果它现在不止一个,按照我的建议,只需将
settings.xml
文件放入
~/.m2/