Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.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
Ubuntu 在Docker运行Jenkins-立即退出_Ubuntu_Jenkins_Docker_Dockerfile - Fatal编程技术网

Ubuntu 在Docker运行Jenkins-立即退出

Ubuntu 在Docker运行Jenkins-立即退出,ubuntu,jenkins,docker,dockerfile,Ubuntu,Jenkins,Docker,Dockerfile,我想用docker运行Jenkins服务器 我已构建映像,并尝试使用以下命令运行它: docker run -p 8080:8080 62a4e44bf4bf docker run -i -t -p 8080:8080 62a4e44bf4bf 62a4e44bf4bf是docker映像ID 每当我运行此命令时,它都会立即关闭 我已尝试使用此命令: docker run -p 8080:8080 62a4e44bf4bf docker run -i -t -p 8080:8080 62a4

我想用docker运行Jenkins服务器

我已构建映像,并尝试使用以下命令运行它:

docker run -p 8080:8080 62a4e44bf4bf
docker run -i -t -p 8080:8080 62a4e44bf4bf
62a4e44bf4bf是docker映像ID

每当我运行此命令时,它都会立即关闭

我已尝试使用此命令:

docker run -p 8080:8080 62a4e44bf4bf
docker run -i -t -p 8080:8080 62a4e44bf4bf
这将使图像保持运行,但我似乎无法使用此ip:localhost:8080从浏览器访问jenkins

DOCKERFILE:
@Detilium您的
Dockerfile
中没有CMD或ENTRYPOINT,这就是它自动退出的原因,因为您的容器没有要运行的内容。根据您自己的回答,我猜您可能是通过使用
exec
或运行bash并手动启动它来实现的

但是,您的Dockerfile有问题。Docker容器必须以
pid 1
(容器内部)的形式运行进程,并且必须在前台运行(无后台程序)

更重要的是,图像重新呈现文件系统,而不是状态。如果在映像构建的某个步骤中(在
Dockerfile
中)启动进程,则它正在运行的事实将不会被/持久化/,因此在基于此映像运行容器时不会再次启动。docker在启动容器时运行的默认命令定义为
CMD

RUN service jenkins start
上面这行不行。它将在构建的这一步启动jenkins并创建一个层(甚至可能是空的)。但是将要创建的下一层(另一个步骤或实际的
docker运行
)将不会运行jenkins服务/进程

对于Jenkins
Dockerfile
,您可以查看。注意
入口点[“java”、“-jar”、“/opt/jenkins.war”]
也可以是

CMD[“java”、“-jar”、“/opt/jenkins.war”]


我鼓励您阅读以下文档,以进一步了解docker:,和。

当jenkins容器无法继续运行时,您的jenkins目录上的权限可能会出现问题。我做了“docker pull jenkins”,惊讶地发现它无法运行

要调试错误,请使用-i(交互式标志)启动映像。(如果您不知道自己的身份证,请使用“docker ps-a | grep jenkins”)

我看到这样一个错误:

touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
所以我检查了/var/jenkins_房屋所有权和许可。 我看到$PWD/jenkins目录是使用root:root 700权限创建的。我调整(大锤法):“sudo chmod 777$PWD/jenkins”。问题解决了。容器运行正常,并将jenkins安装到该目录中

我像这样运行jenkins容器:(PWD=/home/myuser so/var/jenkins_容器中的home实际上是docker服务器上的$PWD/jenkins)


这是一个旧线程,但在我的例子中,是内存不足导致了关机。我在mac上的docker桌面上运行docker。为Docker Desktop分配更多内存解决了这个问题。也许这可以帮助某人。

sudo chmod 777$PWD/jenkins
sudo docker run-d-p 8080:8080-v$PWD/jenkins:/var/jenkins_home:z-t jenkins/jenkins
docker run -d -p 49001:8080 -v $PWD/jenkins:/var/jenkins_home:z -t jenkins