在CoreOS上使用Docker,我有一个调用的脚本:
docker exec ...
这在CoreOS上运行良好,但我也想在CircleCI上测试它。当我尝试在CircleCI上运行该脚本时,我得到:
time="2015-06-22T01:14:51Z" level=fatal msg="Error response from daemon: Unsupported: Exec is not supported by the lxc driver" ./tests/run.sh returned exit code 1
Here are the test results on CircleCI
我尝试将docker exec
更改为docker --exec-driver native exec
,但我并不完全确定"驱动程序"是,如何改变它,或者即使它是可能的或可取的。
围绕此错误的最佳做法是什么?
答案 0 :(得分:11)
执行驱动程序是docker在场景后面使用的实际运行容器的驱动程序。有两种常用选项:lxc
(以前默认值),native
(当前默认值)
看起来CircleCI还不支持native
执行驱动程序,这就是为什么它缺少docker中的一些功能。显然他们已经意识到了这一点并提出了workaround。
答案 1 :(得分:1)
我有一个类似的问题,docker exec无法正常工作。我尝试使用lxc-attach的工作,但这不能很好地工作。我怀疑我可以用更多的时间来工作。
最后,我在容器中创建了一个自定义bash脚本,该脚本包含我需要运行的所有命令,并使用了正常的" docker run"命令。