2017-01-05 21 views
0

我有它創建了一個Debian的基礎rkt/appCaci容器下面的shell腳本:

#!/bin/sh 
set -e 

# $ zcat debian.aci | tree | head 
# $ rkt run debian.aci --insecure-options=image 

export MY_CHROOT=/var/lib/container/aci/debian 

mkdir -p $MY_CHROOT 

debootstrap --verbose --arch=amd64 --include=iputils-ping,iproute --variant=minbase stable $MY_CHROOT/rootfs http://httpredir.debian.org/debian 

cat > $MY_CHROOT/manifest <<EOF 
{ 
    "acKind": "ImageManifest", 
    "acVersion": "0.8.9", 
    "name": "debian", 
    "labels": [ 
    {"name": "arch", "value": "amd64"}, 
    {"name": "os", "value": "linux"}, 
    {"name": "version", "value": "1.0.0"} 
    ], 
    "app": { 
    "exec": [ 
     "/bin/sh", 
     "echo", 
     "Hello, World from $MY_ENV_VAR!" 
    ], 
    "user": "0", 
    "group": "0", 
    "environment": [ 
     { 
     "name": "MY_ENV_VAR", 
     "value": "$(whoami)" 
     } 
    ], 
    }, 
    "annotations": { 
    "authors": "Istvan Lantos <[email protected]>" 
    } 
} 
EOF 

# use gpg to create a sig, but we'll skip that for now 
tar cvvf - $MY_CHROOT/manifest $MY_CHROOT/rootfs | gzip -c > $MY_CHROOT/debian.aci 

要驗證manifest文件存在:

[email protected]:/var/lib/container/aci/debian# zcat debian.aci | tree | head 
. 
├── debian.aci 
├── manifest 
└── rootfs 
    ├── bin 
    │   ├── bash 
    │   ├── cat 
    │   ├── chacl 
    │   ├── chgrp 
    │   ├── chmod 

當我嘗試使用$ rkt run debian.aci --insecure-options=image命令運行此容器時,出現以下錯誤:

run: missing manifest 

我跟着這些指南的文件結構:

https://github.com/appc/spec

https://github.com/appc/spec/blob/master/spec/aci.md#image-layout

https://github.com/appc/spec/blob/master/examples/image.json

爲什麼不工作?

謝謝你的幫助!

回答