docker - 如何在拥有私有(private) docker 注册表服务器的同时将 docker 与 gradle 一起使用

标签 docker gradle docker-registry

我正在尝试设置 https://spring.io/guides/gs/spring-boot-docker/#initial在我的环境中,它有一个私有(private)注册服务器@

el-qa-docker.x.x.x:18445

我的 build.gradle 有以下相关内容:
dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.3.RELEASE")
        classpath('se.transmode.gradle:gradle-docker:1.2')
        classpath ('org.codehaus.groovy:groovy-backports-compat23:2.3.5')
    }

group = 'james'

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'docker'

task buildDocker(type: Docker, dependsOn: build) {
  push = true
  applicationName = jar.baseName
  dockerfile = file('src/main/docker/Dockerfile')
  doFirst {
    copy {
      from jar
      into stageDir
    }
  }
}

当我运行时:$gradle build buildDock
我得到构建失败,其中:
    $ gradle build buildDock
    :compileJava UP-TO-DATE
    :processResources UP-TO-DATE
    :classes UP-TO-DATE
    :findMainClass
    :jar
    :bootRepackage
    :assemble
    :compileTestJava UP-TO-DATE
    :processTestResources UP-TO-DATE
    :testClasses UP-TO-DATE
    :test UP-TO-DATE
    :check UP-TO-DATE
    :build
    :buildDocker FAILED

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':buildDocker'.
    > Docker execution failed
      Command line [docker build -t skahmed/gs-spring-boot-docker:latest /Users/skahmed/devops/TOOLS/DOCKER/gs-spring-boot-docker/initial/build/docker] returned:
      Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)


    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 16.243 secs

任何想法,关于我在哪里指定可与 Gradle 一起使用的 docker 内部注册表。

我试过:
docker {
  useApi true
  hostUrl 'el-qa-docker.x.x.x:18445'
  apiUsername 'james'
}

https://github.com/Transmode/gradle-docker 提供

但这给出了一个不同的错误:
 $ gradle build buildDock
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass
:jar
:bootRepackage
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build
:buildDocker FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':buildDocker'.
> Port is invalid: -1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 1.389 secs

我试过:build.gradle
docker {
   //useApi true
   hostUrl 'el2-dt-docker.uscis.dhs.gov:18445'
   apiUsername 'skahmed'
}


task buildDocker(type: Docker, dependsOn: build) {
  push = true
  applicationName = jar.baseName
  //applicationName = 'el2-dt-docker.uscis.dhs.gov:18445/skahmed/gs-spring-boot-docker'
  //applicationName = 'gs-spring-boot-docker'
  dockerfile = file('src/main/docker/Dockerfile')
  doFirst {
    copy {
      from jar
      into stageDir
    }
  }
}

但得到:
:buildDocker FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':buildDocker'.
> Docker execution failed
  Command line [docker push skahmed/gs-spring-boot-docker:latest] returned:
  Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

最佳答案

您可以将私有(private) Docker 注册表指定为 Docker 镜像名称的一部分,例如:

el-qa-docker.x.x.x:18445/skahmed/gs-spring-boot-docker

请确保您的 Docker 守护进程了解私有(private)注册表。

关于docker - 如何在拥有私有(private) docker 注册表服务器的同时将 docker 与 gradle 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44487066/

相关文章:

docker - GCE构建失败

docker - LetsEncrypt 的 TLS 证书是否应该位于所有容器上?

android - 程序类型已经存在 : org. apache.commons.codec.Decoder

docker - 如何将默认的 docker 注册表从 docker.io 更改为我的私有(private)注册表?

docker - 如何让 docker registry 在 windows server 2016 上工作

docker - Docker中的Nightwatch- Selenium 服务器找不到chromedriver

docker - 使用预编译文件创建 Docker 镜像

java - spring thymeleaf 静态内容 HTTP 405

android - 如何在项目Android Studio之间同步对gradle文件所做的所有更改

docker - 更新注册表中的 docker 镜像