docker - 为什么在运行`docker build`时我的maven依赖项获取失败并重置连接?
问题描述
我正在尝试构建一个 Maven 项目的 docker 映像。当我mvn dependency:go-offline
在我的项目目录中运行时,项目成功构建,但是当我使用 运行相同的命令时docker build .
,我得到一个连接重置
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.335 s
[INFO] Finished at: 2020-12-17T16:26:23Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:resolve-plugins (resolve-plugins) on project aida: Nested:: Could not transfer artifact org.apache.maven:maven-toolchain:jar:2.2.1 from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar
[ERROR] org.apache.maven:maven-toolchain:jar:2.2.1
[ERROR]
[ERROR] from the specified remote repositories:
[ERROR] central (https://repo.maven.apache.org/maven2, releases=true, snapshots=false): Connection reset
[ERROR] -> [Help 1]
它每次都在不同的远程依赖项上失败。第一次没能拿到org.apache.maven:maven-toolchain:jar:2.2.1
。第二次没能拿到org.codehaus.plexus:plexus-interpolation:jar:1.11
。如上面的链接所示,两个存储库都存在于中央存储库中。每次运行似乎都会为不同的包抛出类似的错误。
帮助 1的错误帮助页面有几个可能的原因,但我无法确定一个仅适用于 docker 环境的原因。代理等网络问题同样适用于主机。
MCVE
Dockerfile
FROM maven:3.6.3-jdk-11 as target
WORKDIR /test
COPY ./pom.xml /test
RUN mvn dependency:go-offline
# RUN mvn -e dependency:go-offline # Alternate command for full stack trace
pom.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-cli/commons-cli -->
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>29.0-android</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.11</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
docker build .
带有没有详细错误跟踪 mvn -e 标志的完整错误日志输出
Sending build context to Docker daemon 277.5kB
Step 1/4 : FROM maven:3.6.3-jdk-11 as target
---> 25b8de0642c0
Step 2/4 : WORKDIR /test
---> Using cache
---> c51be64ec620
Step 3/4 : COPY ./pom.xml /test
---> 5f96b065e0ce
Step 4/4 : RUN mvn dependency:go-offline
---> Running in 8eda9d2a4756
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/3.8.0/maven-compiler-plugin-3.8.0.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/3.8.0/maven-compiler-plugin-3.8.0.pom (12 kB at 55 kB/s)
(... # Many more lines like this)
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar (153 kB at 2.9 MB/s)
[INFO]
[INFO] -----------------------------< test:test >------------------------------
[INFO] Building test 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> maven-dependency-plugin:2.8:go-offline (default-cli) > :resolve-plugins @ test >>>
[INFO]
[INFO] --- maven-dependency-plugin:2.8:resolve-plugins (resolve-plugins) @ test ---
Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom (1.6 kB at 202 kB/s)
(... # Many more lines like this)
Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/commons/commons-parent/9/commons-parent-9.pom (22 kB at 2.7 MB/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.223 s
[INFO] Finished at: 2020-12-17T22:46:18Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:resolve-plugins (resolve-plugins) on project test: Execution resolve-plugins of goal org.apache.maven.plugins:maven-dependency-plugin:2.8:resolve-plugins failed: Plugin org.apache.maven.plugins:maven-dependency-plugin:2.8 or one of its dependencies could not be resolved: Failed to collect dependencies at org.apache.maven.plugins:maven-dependency-plugin:jar:2.8 -> org.apache.maven:maven-project:jar:2.0.9 -> org.apache.maven:maven-settings:jar:2.0.9 -> org.apache.maven:maven-model:jar:2.0.9: Failed to read artifact descriptor for org.apache.maven:maven-model:jar:2.0.9: Could not transfer artifact org.apache.maven:maven-model:pom:2.0.9 from/to central (https://repo.maven.apache.org/maven2): Transfer failed for https://repo.maven.apache.org/maven2/org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom: Connection reset -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException
The command '/bin/sh -c mvn dependency:go-offline' returned a non-zero code: 1
docker build .
带有 mvn -e 标志的完整堆栈跟踪
GET request of: commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar from central failed
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:355)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:200)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution resolve-plugins of goal org.apache.maven.plugins:maven-dependency-plugin:2.8:resolve-plugins failed: Plugin org.apache.maven.plugins:maven-dependency-plugin:2.8 or one of its dependencies could not be resolved: The following artifacts could not be resolved: commons-beanutils:commons-beanutils:jar:1.7.0, commons-digester:commons-digester:jar:1.6: Could not transfer artifact commons-beanutils:commons-beanutils:jar:1.7.0 from/to central (https://repo.maven.apache.org/maven2): GET request of: commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar from central failed
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:109)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:355)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:200)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginResolutionException: Plugin org.apache.maven.plugins:maven-dependency-plugin:2.8 or one of its dependencies could not be resolved: The following artifacts could not be resolved: commons-beanutils:commons-beanutils:jar:1.7.0, commons-digester:commons-digester:jar:1.6: Could not transfer artifact commons-beanutils:commons-beanutils:jar:1.7.0 from/to central (https://repo.maven.apache.org/maven2): GET request of: commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar from central failed
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolveInternal (DefaultPluginDependenciesResolver.java:221)
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve (DefaultPluginDependenciesResolver.java:152)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.createPluginRealm (DefaultMavenPluginManager.java:404)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.setupPluginRealm (DefaultMavenPluginManager.java:374)
at org.apache.maven.plugin.DefaultBuildPluginManager.getPluginRealm (DefaultBuildPluginManager.java:234)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:105)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:355)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:200)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: The following artifacts could not be resolved: commons-beanutils:commons-beanutils:jar:1.7.0, commons-digester:commons-digester:jar:1.6: Could not transfer artifact commons-beanutils:commons-beanutils:jar:1.7.0 from/to central (https://repo.maven.apache.org/maven2): GET request of: commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar from central failed
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:424)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:229)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies (DefaultRepositorySystem.java:340)
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolveInternal (DefaultPluginDependenciesResolver.java:213)
at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve (DefaultPluginDependenciesResolver.java:152)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.createPluginRealm (DefaultMavenPluginManager.java:404)
at org.apache.maven.plugin.internal.DefaultMavenPluginManager.setupPluginRealm (DefaultMavenPluginManager.java:374)
at org.apache.maven.plugin.DefaultBuildPluginManager.getPluginRealm (DefaultBuildPluginManager.java:234)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:105)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:355)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:200)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.eclipse.aether.transfer.ArtifactTransferException: Could not transfer artifact commons-beanutils:commons-beanutils:jar:1.7.0 from/to central (https://repo.maven.apache.org/maven2): GET request of: commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar from central failed
at org.eclipse.aether.connector.basic.ArtifactTransportListener.transferFailed (ArtifactTransportListener.java:52)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:369)
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
Caused by: org.apache.maven.wagon.TransferFailedException: GET request of: commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar from central failed
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:412)
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:338)
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:307)
at org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:97)
at org.apache.maven.wagon.StreamWagon.get (StreamWagon.java:61)
at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:567)
at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:435)
at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:412)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:457)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:364)
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
Caused by: javax.net.ssl.SSLException: Connection reset
at sun.security.ssl.Alert.createSSLException (Alert.java:127)
at sun.security.ssl.TransportContext.fatal (TransportContext.java:350)
at sun.security.ssl.TransportContext.fatal (TransportContext.java:293)
at sun.security.ssl.TransportContext.fatal (TransportContext.java:288)
at sun.security.ssl.SSLTransport.decode (SSLTransport.java:144)
at sun.security.ssl.SSLSocketImpl.decode (SSLSocketImpl.java:1411)
at sun.security.ssl.SSLSocketImpl.readApplicationRecord (SSLSocketImpl.java:1376)
at sun.security.ssl.SSLSocketImpl$AppInputStream.read (SSLSocketImpl.java:963)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionInputBufferImpl.streamRead (SessionInputBufferImpl.java:137)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionInputBufferImpl.read (SessionInputBufferImpl.java:197)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.ContentLengthInputStream.read (ContentLengthInputStream.java:176)
at org.apache.maven.wagon.providers.http.httpclient.conn.EofSensorInputStream.read (EofSensorInputStream.java:135)
at java.nio.channels.Channels$ReadableByteChannelImpl.read (Channels.java:388)
at org.apache.maven.wagon.AbstractWagon.transfer (AbstractWagon.java:597)
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:395)
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:338)
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:307)
at org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:97)
at org.apache.maven.wagon.StreamWagon.get (StreamWagon.java:61)
at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:567)
at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:435)
at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:412)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:457)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:364)
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read (SocketInputStream.java:186)
at java.net.SocketInputStream.read (SocketInputStream.java:140)
at sun.security.ssl.SSLSocketInputRecord.read (SSLSocketInputRecord.java:476)
at sun.security.ssl.SSLSocketInputRecord.readFully (SSLSocketInputRecord.java:459)
at sun.security.ssl.SSLSocketInputRecord.decodeInputRecord (SSLSocketInputRecord.java:243)
at sun.security.ssl.SSLSocketInputRecord.decode (SSLSocketInputRecord.java:181)
at sun.security.ssl.SSLTransport.decode (SSLTransport.java:110)
at sun.security.ssl.SSLSocketImpl.decode (SSLSocketImpl.java:1411)
at sun.security.ssl.SSLSocketImpl.readApplicationRecord (SSLSocketImpl.java:1376)
at sun.security.ssl.SSLSocketImpl$AppInputStream.read (SSLSocketImpl.java:963)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionInputBufferImpl.streamRead (SessionInputBufferImpl.java:137)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.SessionInputBufferImpl.read (SessionInputBufferImpl.java:197)
at org.apache.maven.wagon.providers.http.httpclient.impl.io.ContentLengthInputStream.read (ContentLengthInputStream.java:176)
at org.apache.maven.wagon.providers.http.httpclient.conn.EofSensorInputStream.read (EofSensorInputStream.java:135)
at java.nio.channels.Channels$ReadableByteChannelImpl.read (Channels.java:388)
at org.apache.maven.wagon.AbstractWagon.transfer (AbstractWagon.java:597)
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:395)
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:338)
at org.apache.maven.wagon.AbstractWagon.getTransfer (AbstractWagon.java:307)
at org.apache.maven.wagon.StreamWagon.getIfNewer (StreamWagon.java:97)
at org.apache.maven.wagon.StreamWagon.get (StreamWagon.java:61)
at org.eclipse.aether.transport.wagon.WagonTransporter$GetTaskRunner.run (WagonTransporter.java:567)
at org.eclipse.aether.transport.wagon.WagonTransporter.execute (WagonTransporter.java:435)
at org.eclipse.aether.transport.wagon.WagonTransporter.get (WagonTransporter.java:412)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask (BasicRepositoryConnector.java:457)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run (BasicRepositoryConnector.java:364)
at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run (RunnableErrorForwarder.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1128)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:628)
at java.lang.Thread.run (Thread.java:834)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException
The command '/bin/sh -c mvn -e dependency:go-offline' returned a non-zero code: 1
系统信息
- 阿帕奇 Maven 3.6.0
- Docker 版本 20.10.1,构建 831ebea
- Java 版本:11.0.9.1,供应商:Ubuntu,运行时:/usr/lib/jvm/java-11-openjdk-amd64
- 默认语言环境:en_US,平台编码:UTF-8
- 操作系统名称:“linux”,版本:“4.15.0-126-generic”,arch:“amd64”,家族:“unix”
解决方案
此解决方案基于这篇出色(且全面)的帖子,修复 Docker/Kubernetes 中的随机网络连接重置问题。
连接重置是由于一个无效的 TCP 数据包穿过防火墙,并且目标地址没有被重写以反映 Docker 正在侦听的端口。引用文章:
当 INVALID 数据包通过防火墙时,conntrack 不会将其目标地址重写为 Pod 的 IP 地址/端口。相反,目标是主机的 IP 地址,端口没有人在监听。一个 RST 数据包被发回并导致连接关闭。
由于只有 Docker 需要这个 rewrite 步骤,所以mvn dependency:go-offline
在主机上运行不会遇到问题。
为了解决 Docker 问题,作者建议添加一条规则以将 INVALID 数据包丢弃到主机 iptables。要添加此规则,我使用了
sudo iptables -A INPUT -i eth0 -m state --state INVALID -j DROP
在 iptables 规则中没有默认丢弃 INVALID 数据包的任何主机 Docker 机器上,您都可能会遇到此问题。帖子作者重现了 Ubuntu 和 Debian 上的连接重置。Fedora/CentOs 在其默认的 iptables 规则中有 INVALID drop line,因此不应该遇到这个问题。
推荐阅读
- jestjs - 是否可以使用 Puppeteer 拍摄独立于设备的屏幕截图?
- verilog - RTL Verilog (FPGA) 可综合代码的时钟转换
- ios - iOS 托管应用程序配置和设备注册
- javascript - JS和PHP的问题
- javascript - 使用下拉选择选项按日期对列表进行排序
- django - django 子组最大值的总和
- angular - Angular:组合应用程序,但作为单独的项目开发
- wordpress - 按元字段订购 WooCommerce 产品
- java - URL.openConnection() 的实现,以便它可以被强制转换
- python-3.x - 2D numpy 数组上的滑动窗口