我在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,但仍然是同样的错误。
答案 0 :(得分:1)
大多数情况下,您使用旧版本的Docker。
manifest invalid: manifest invalid
请升级docker客户端(至少升级到v1.8.1)并再次尝试push
,你可以推送图像。
答案 1 :(得分:1)
在Docker 1.10中,他们改变了图像清单的生成方式。
IBM Containers Registry运行的Docker Registry版本不支持使用新格式构建的图像,因此您会在尝试推送时看到错误。
我们正努力使用最新版本的Docker再次推动工作,但现在您需要执行以下操作之一:
cf ic build -t registry.ng.bluemix.net/my_ibm/libertytest1 c:/Microservices
答案 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
,write
和overwrite
权限。