【问题标题】:How to use bmuschko/gradle-docker-plugin to automate copying file to a running docker in IBM Containers with Gradle如何使用 bmuschko/gradle-docker-plugin 自动将文件复制到 IBM Containers with Gradle 中正在运行的 docker
【发布时间】:2017-01-04 10:53:33
【问题描述】:

我已将 bmuschko/gradle-docker-plugin 添加到 Gradle build.gradle 文件中,以自动将 war 文件复制到正在运行的容器中。此插件复制到 docker 实例的文件复制命令非常适用于具有以下配置的标准远程 docker 机器:

docker {
    url = 'https://IP:2376'
    certPath = new File('/Users/USER/.docker/machine/machines/MACHINE')
}

我需要对 IBM Containers 服务做同样的事情。该服务支持标准 docker 命令。我只需要这样做:

export DOCKER_HOST=tcp://containers-api.eu-gb.bluemix.net:8443
export DOCKER_CERT_PATH=/Users/USER/.ice/certs
export DOCKER_TLS_VERIFY=1

并且任何 docker 命令都可以与 IBM Containers 服务一起使用,但不能与之前工作的 gradle 任务一起使用。如果我把这个参数(在主机 url 参数中都使用 tcp:// 或 https:// )并且我在执行 gradle 时执行 IBM Containers 导出,我得到:

:copyBootJarsToDocker FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':copyBootJarsToDocker'.
> <html>
  <head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
  <body bgcolor="white">
  <center><h1>400 Bad Request</h1></center>
  <center>The plain HTTP request was sent to HTTPS port</center>
  <hr><center>nginx</center>
  </body>
  </html>

是否可以配置此插件以使其与 IBM Containers docker 服务一起使用,以便我可以自动更新应用程序?

谢谢

【问题讨论】:

    标签: gradle docker containers ibm-cloud continuous-delivery


    【解决方案1】:

    我不知道 gradle 插件,但我验证了如果您导出您指定的 Docker 属性(也发现运行 'cf ic init'),那么以下命令对 IBM Container 服务非常有效。

    docker cp some-file.txt my-container:temp/some-file.txt

    这表明 IBM Container 服务尊重 Docker 远程 API。

    我不确定你为什么使用“https”作为 docker url。您是否尝试过使用 DOCKER_HOST 预期的确切 URL?具体使用tcp://containers-api.eu-gb.bluemix.net:8443

    【讨论】:

      猜你喜欢
      • 2016-06-24
      • 2018-10-28
      • 2020-07-21
      • 2022-11-04
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      相关资源
      最近更新 更多