我需要从openshift模板文件中提取所有图像,在我的情况下是openwhisk。
我正在尝试将该项目部署在专用网络上,因此我无法从那里访问docker的官方存储库,因此需要自己推送映像。
我希望有一个脚本/工具来自动化该过程。
答案 0 :(得分:0)
没有可用的工具/脚本,但是您可以编写小型Shell脚本来实现。
如果不允许公共dockerhub注册表,则可以使用私有的单独注册表
或
将图像拖入本地笔记本电脑中,然后对其进行标记并推送至openshift注册表。 将所有映像推送到openshift之后,导入openshift模板以部署您的应用程序。
以下是单个图像的步骤。您可以定义图像列表并将其循环到列表上。
docker pull imagename
oc login https://127.0.0.1:8443 --token=<hidden_token> #copy from https://your_openshift_server:port/console/command-line
oc project test
oc create imagestream imagename
docker login -u `oc whoami` -p `oc whoami --show-token` your_openshift_server:port
docker tag imagename your_openshift_server:port/openshift_projectname/imagename:tag
docker push your_openshift_server:port/openshift_projectname/imagename:tag
您可以在第suggested by graham-dumpleton页上获取更多详细信息
答案 1 :(得分:0)
Graham Dumpleton的书谈到了这一点。您创建所有使用的图像的列表(JSON),并将其导入到openshift命名空间中。由于您的OpenShift处于脱机状态/已断开连接,因此您还将所有远程注册表更改为内部托管注册表的URL。
导入所有JBoss图像的示例:https://github.com/projectatomic/adb-utils/blob/master/services/openshift/templates/common/jboss-image-streams.json