从docker运行gradle:无法从maven存储库获取工件

从docker运行gradle:无法从maven存储库获取工件,docker,spring-boot,gradle,dockerfile,Docker,Spring Boot,Gradle,Dockerfile,我有一个带有Gradle的Spring启动应用程序,我想创建一个docker映像,它只需复制项目并进行Gradle构建。Dockerfile相当简单: FROM openjdk:8-jdk-alpine WORKDIR /app COPY . /app VOLUME /tmp ENTRYPOINT ./gradlew build --stacktrace 但是,docker run会随机失败,因为它无法从maven或jcenter存储库下载内容。这种失败的一个例子是: FAILURE: Bui

我有一个带有Gradle的Spring启动应用程序,我想创建一个docker映像,它只需复制项目并进行Gradle构建。Dockerfile相当简单:

FROM openjdk:8-jdk-alpine
WORKDIR /app
COPY . /app
VOLUME /tmp
ENTRYPOINT ./gradlew build --stacktrace
但是,
docker run
会随机失败,因为它无法从maven或jcenter存储库下载内容。这种失败的一个例子是:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':my-app'.
> Could not resolve all files for configuration ':my-app:classpath'.
    > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.0.0.RELEASE.
    Required by:
        project :my-app
    > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:2.0.0.RELEASE.
        > Could not get resource 'https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-gradle-plugin/2.0.0.RELEASE/spring-boot-gradle-plugin-2.0.0.RELEASE.pom'.
            > Could not GET 'https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-gradle-plugin/2.0.0.RELEASE/spring-boot-gradle-plugin-2.0.0.RELEASE.pom'.
               > repo1.maven.org
计算机当然与互联网连接良好,docker外部的gradle构建总是能够成功运行。我是不是错过了一些基本的东西

更新1:通过在
Dockerfile
中添加以下两行,问题得以解决:

ENV http_proxy "http://127.0.0.1:3001"
ENV https_proxy "http://127.0.0.1:3001"
取自

这是否意味着docker在我的网络代理服务器上遇到了一些问题?代理
http://127.0.0.1:3001
确切的意思是什么


更新2:看起来添加了
--dns 208.67.222.222--dns 208.67.220.220
(告诉docker使用OpenDNS)也解决了这个问题。现在我真的很困惑。

请注意,
docker run
取决于您执行的位置,因为您正在将
复制到
/app