我有一个码头形象和一个cli工具。我想要创建一个捕捉包,它可以提取Docker图像并在本地Docker上运行它。我已经有了一个安装cli工具的snapcraft.yaml。我试图理解应该添加/编辑什么,以便调用Docker操作。
此外,我试图理解,如果在这种情况下,码头必须安装通过快照,或只要码头是以某种方式安装在机器上,一切都是好的?当没有安装码头时会发生什么情况?
根据我在Snap上的发现,我需要在我的snapcraft.yaml中添加码头接口,这样它就可以提供对deamon的访问,但是我找不到任何资源来调用Docker命令.
这是我的snapcraft.yaml:
version: '1.0.0'
summary: |
Test CLI and Service
description: |
Some Test Description.
grade: devel
confinement: strict
plugs:
docker-cli:
interface: docker
docker-executables:
interface: content
target: $SNAP/docker-exes
default-provider: docker:docker-executables
parts:
jre:
source-type: tar
source: ./jre-source/zulu11.33.10-sa-jre11.0.4-linux_x64.tar.gz
plugin: dump
test-snap:
source-type: local
source: ./test-snap-source
plugin: dump
apps:
test-snap:
command: docker ps
plugs:
- docker
- docker-executables
- docker-cli当我运行测试快照时,我得到的是"/snap/test-snap/x6/command-test-snap.wrapper: 4: exec: docker: not“
谢谢!
发布于 2019-08-01 06:59:07
在GitHub上找到了下面的GitHub,它确实帮助我创建了一个快照,它通过停靠插件共享的内容界面运行一个停靠应用程序。
为任何试图做类似事情的人附加了我的snapcraft.yaml:
name: my-app
version: '1.0.0'
summary: |
my-app Summary
description: |
Some my-app Description.
grade: devel
confinement: strict
plugs:
docker-cli:
interface: docker
docker-executables:
content: docker-executables
default-provider: docker
interface: content
target: docker-env
parts:
environment:
plugin: dump
source: ./src/
organize:
'docker-wrapper' : bin/
apps:
my-app:
command: docker-wrapper docker
plugs: [docker-executables, docker-cli]您可以在这里的插口(插头和插槽)上找到一般的解释--简而言之,接口由插槽和插头之间的连接组成。插槽是接口的提供者,而插头是使用者。在我的例子中,码头管理单元有两个接口,它提供(插槽),我的应用程序消耗(插头)-对接接口下的对接-cli插头和内容接口下的对接-可执行插件的插头。
关于这个问题,码头是否必须通过Snap安装。因为我的应用程序snap使用了接口,所以答案是肯定的。但我不确定这是否与安装在机器上的码头有冲突。我有答案的时候会更新的。
希望我能帮助别人!
https://askubuntu.com/questions/1162349
复制相似问题