在bluemix中推送图像时表现出无效错误

时间:2016-02-10 01:25:56

标签: docker push ibm-cloud

我在Windows系统中本地创建了一个图像。该图像将hello world应用程序war文件复制到自由服务器。我能够在我的系统中本地构建和运行映像。但是,我无法将应用程序推送到bluemix。

这是我的泊坞文件:

FROM registry.ng.bluemix.net/ibmliberty:latest
COPY HelloWorldWeb.war /opt/ibm/wlp/usr/servers/defaultServer/dropins/
ENV LICENSE accept
EXPOSE 9080 22

这些命令成功:

$ docker build -t libertytest1 c:/Microservices
$ docker tag libertytest1 registry.ng.bluemix.net/my_ibm/libertytest1
$ docker run --rm -i -t libertytest1

此命令失败,错误如下:

$ docker push registry.ng.bluemix.net/my_ibm/libertytest1
The push refers to a repository [registry.ng.bluemix.net/my_ibm/libertytest1]
9f24cf425f1e: Pushed
5f70bf18a086: Pushed
f5115b19b62d: Pushed
d255f44e3bce: Pushed
3eb8d309e7a4: Pushed
b9ca157916fa: Pushed
9d3eae113364: Pushed
8077bafd5c40: Pushed
86a4f2b11dd6: Pushed
58de70953d07: Pushed
3a497f2a043d: Pushed
612baa4f0341: Pushed
63f90ec2c29b: Pushed
54f3ce62fc73: Pushed
7c7cf479c321: Pushed
manifest invalid: manifest invalid

当我登录bluemix并检查我的容器时,我看不到这个容器。请建议如何解决此错误。

注意:我在war文件中添加了manifest.yml,但仍然是同样的错误。

4 个答案:

答案 0 :(得分:1)

大多数情况下,您使用旧版本的Docker。

manifest invalid: manifest invalid

请升级docker客户端(至少升级到v1.8.1)并再次尝试push,你可以推送图像。

答案 1 :(得分:1)

在Docker 1.10中,他们改变了图像清单的生成方式。

IBM Containers Registry运行的Docker Registry版本不支持使用新格式构建的图像,因此您会在尝试推送时看到错误。

我们正努力使用最新版本的Docker再次推动工作,但现在您需要执行以下操作之一:

  • 使用IBM Containers构建服务:cf ic build -t registry.ng.bluemix.net/my_ibm/libertytest1 c:/Microservices
  • 在您的计算机上降级到Docker 1.9并按上述方式在本地运行命令。
编辑:问题现已解决。您现在可以使用Docker 1.10推送图像。

答案 2 :(得分:0)

我对docker和cf ic的最新版本有同样的问题 我解决了它使用cf ic build命令直接在Bluemix上构建映像

cf ic build -t [Bluemix registry URL] [path to your docker file]

答案 3 :(得分:0)

对于使用Artifactory的任何人,我都遇到了同样的问题。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr>
    <td>
      <p>2<sup>nd</sup> year autumn semester</p>
    </td>
    <td>
      <p>2<sup>nd</sup> year spring semester</p>
    </td>
    <td>
      <p>3<sup>rd</sup> year autumn semester</p>
    </td>
    <td>
      <p>3<sup>rd</sup> year spring semester</p>
    </td>
    <td>
      <p>4<sup>th</sup> year autumn semester</p>
    </td>
  </tr>
  <tr>
    <td>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="5">Some class 5op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="5">Some class 5op</button>
      <br>
      <button class="btn" value="13">Some class 13op</button>
      <br>
    </td>
    <td></td>
  </tr>
  <tr>
    <td>
      <button class="btn" value="5">Some class 5op</button>
      <br>
      <button class="btn" value="5">Some class 5op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="6">Some class 6op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="6">Some class 6op</button>
      <br>
    </td>
  </tr>
  <tr>
    <td>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="6">Some class 6op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="6">Some class 6op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="3">Some class 3op</button>
      <br>
    </td>
  </tr>
  <tr>
    <td>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="5">Some class 5op</button>
      <br>
      <button class="btn" value="3">Some class 3op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="3">Some class 3op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="4">Some class 4op</button>
      <br>
      <button class="btn" value="5">Some class 5op</button>
      <br>
      <button class="btn" value="3">Some class 3op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="4">Some class 3op</button>
      <br>
      <button class="btn" value="6">Some class 6op</button>
      <br>
    </td>
    <td>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="3">Some class 3op</button>
      <br>
      <button class="btn" value="4">Some class 4op</button>
      <br>
    </td>
  </tr>
</table>
<table class="selectedcourses">
  <tr>
    <td>
      <div id="selectedcourses"></div>
    </td>
  </tr>
</table>

修复程序是更新Artifactory用户帐户的权限,使其具有manifest invalid: manifest invalid writeoverwrite权限。