Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
TravisCI-Docker-执行失败_Docker_Travis Ci - Fatal编程技术网

TravisCI-Docker-执行失败

TravisCI-Docker-执行失败,docker,travis-ci,Docker,Travis Ci,我正试图在TravisCI中启动一个容器,然后对它执行一些docker exec。但它每次都失败,错误代码为255 我不明白的是,该流程在本地运行良好。 然后我使用标准容器(ubuntu)。同样的情况也在发生 我只是拉一个图像,无休止地运行它,然后尝试对它执行一些exec。我使用一个文件container\u id来存储容器id(该部分工作) 这是我的密码: $ docker pull ubuntu:latest latest: Pulling from ubuntu age you are p

我正试图在TravisCI中启动一个容器,然后对它执行一些
docker exec
。但它每次都失败,错误代码为255

我不明白的是,该流程在本地运行良好。
然后我使用标准容器(ubuntu)。同样的情况也在发生

我只是拉一个图像,无休止地运行它,然后尝试对它执行一些exec。我使用一个文件
container\u id
来存储容器id(该部分工作)

这是我的密码:

$ docker pull ubuntu:latest
latest: Pulling from ubuntu
age you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
Status: Downloaded newer image for ubuntu:latest

$ docker run -d ubuntu:latest sh -c "while true; do sleep 5; done" > container_id
The command "docker run -d ubuntu:latest sh -c "while true; do sleep 5; done" > container_id" exited with 0.

$ docker logs `cat container_id`
The command "docker logs `cat container_id`" exited with 0.

$ docker exec `cat container_id` sh -c "mkdir /repository"
The command "docker exec `cat container_id` sh -c "mkdir /repository"" exited with 255.

$ docker logs `cat container_id`
The command "docker logs `cat container_id`" exited with 0.

$ docker exec `cat container_id` sh -c "cd /repository ; git clone https://github.com/tdeheurles/homecores"
The command "docker exec `cat container_id` sh -c "cd /repository ; git clone https://github.com/tdeheurles/homecores"" exited with 255.

$ docker logs `cat container_id`
The command "docker logs `cat container_id`" exited with 0.

$ docker exec `cat container_id` sh -c "cd /repository/homecores ; ./test/test.sh"
The command "docker exec `cat container_id` sh -c "cd /repository/homecores ; ./test/test.sh"" exited with 255.

$ docker logs `cat container_id`
The command "docker logs `cat container_id`" exited with 0.
Done. Your build exited with 1.

255表示发生了错误。
在像
mkdir/repository
这样简单的东西上,这可能意味着
docker exec sh
会话中的用户id不是root,并且无权在
/
中装入文件夹

通过添加中间体检查:

docker exec `cat container_id` sh -c "id -a"
其中提到了一个
-u
--user=
选项,因此您可以尝试:

docker exec -u root `cat container_id` sh -c "mkdir /repository"
从下面的讨论来看,似乎错误可能与缺少lxc驱动程序有关

有帮助的(至少在:见)是


在特拉维斯身上做任何事都有同样的问题。我在/var/log/upstart/docker.log中注意到这个错误消息:

错误[0054]在容器85f99b93c5307fe8ec45ea4e743147869cc25a3e5dfb91b623dd6b3eede1da3b中启动exec命令时出错:无法运行exec命令85F99B93C5307FE8EC45EA4E743147869CC25A3E5DFB91B623DD6EEDE1DA3B在容器8F40F7B49658CC9661446F61492D3F02E371BA2EF29F258BB856EA7E6中:[]系统错误:权限被拒绝


经过一些挖掘,我可以通过在特权模式下运行docker容器(docker run--privileged)来解决这个问题。希望有帮助。

我有一个别名,可以输入启动的最后一个容器
别名exec_last='docker exec-it$(docker ps-lq)$(docker inspect-f{{.Path'}}$(docker ps-lq))
无论如何,你可以使用
$(docker ps-lq)
大量代码来表示变量no?可能:container\u id=$(docker run-d ubuntu…)然后
docker exec$container\u id…
我只是用文件系统save^^ThanksHi,tnaks从任何地方(ssh)获取容器id,但仍然是相同的问题。这两个命令以255退出。。。生成日志是@thibaultdehurles OK。让我们从解决docker exec的问题开始。让我们尝试使用一个
docker exec
(任意
docker exec
)命令。你的形象的切入点是什么?
docker exec`cat container\u id`ls
会工作吗?不,它不工作。也许它来自我的配置:@thibaultdehourles首先检查
docker ps-a
docker运行后返回的内容,只是为了确定。另外,一个
echo$container\u id
也可以,以确保该id已被正确捕获。已经完成。为下一个版本添加了:我确实更改为CircleCI,在那里我可以做我需要的事情。但可以肯定的是,知道这一点很好<代码>谢谢
sudo lxc-attach -n "$(docker inspect --format '{{.Id}}' hctest)" -- bash -c ls