如何为Jenkinsconfigurationdockerfile和docker-compose

我在Docker和Jenkins中也是全新的。 我有一个关于Dockerfile和docker-compose.yml文件的configuration的问题。 我试图使用最简单的configuration来正确设置这些文件。 build立和推送是正确的,但jenkins应用程序没有运行在我的本地主机(127.0.0.1)。

如果我理解正确,现在它应该默认运行在端口50000(ARG agent_port = 50000在jenkins“官方”Dockerfile中)。 我试图使用50000,8080和80,没有任何工作。 你有什么build议吗? 我使用这些文件: https : //github.com/fdolsky321/Jenkins_Docker

第二个问题是,处理容器崩溃的最好办法是什么? 比方说,如果容器崩溃,我想用相同的设置重新创build一个新的容器。 创build一个像“crash.sh”这样的新shell文件并提供信息的最好方法就是创build具有相同设置的新容器。 喜欢在这里提到: https : //blog.codeship.com/ensuring-containers-are-always-running-with-dockers-restart-policy/

谢谢你的任何build议。

用于Windows的Docker的HyperV。

在这种情况下,您必须确保您转发任何已发布的端口(如5000)。

打开HyperVpipe理器,右键单击在那里定义的机器:您将能够添加端口转发规则,以便localhost:5000访问您的VM:5000。

docker工人为jenkins撰写

泊坞窗,compose.yml

 version: '2' services: jenkins: image: jenkins:latest ports: - 8080:8080 - 50000:50000 # uncomment for docker in docker privileged: true volumes: # enable persistent volume (warning: make sure that the local jenkins_home folder is created) - /var/wisestep/data/jenkins_home:/var/jenkins_home # mount docker sock and binary for docker in docker (only works on linux) - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker 

根据您的主机需要更换端口8080,50000。

使用相同的设置重新创build一个新的容器

volume安装jenkins_home,是你存储所有的工作和设置等地方。

采取安装卷jenkins_home备份创build每个工作或你想要的方式。 每当有任何崩溃时,用相同的docker-compose文件运行Jenkins,并用备份replacejenkins_home文件夹。

重新运行/重新启动jenkins

列出容器

 docker ps -a 

重新启动容器

 docker restart <Required_Container_ID_To_Restart> 

我一直在使用如下所示的docker-compose.yml:

 version: '3.2' volumes: jenkins-home: services: jenkins: image: jenkins-docker build: . restart: unless-stopped ports: - target: 8080 published: 8080 protocol: tcp mode: host volumes: - jenkins-home:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock container_name: jenkins-docker 

我的图片是一个本地build立的jenkins图片,基于jenkins / jenkins:lts,添加了像docker本身的其他一些组件,并且我正在安装docker socket以允许我在docker主机上运行命令。 这可能不是你的用例需要的。 对于你来说重要的部分是发布的端口,对我来说只有8080,并且/ var / jenkins_home的卷保留图像更新之间的Jenkinsconfiguration。

要从错误中恢复,我已经restart: unless-stopped在docker-compose.yml中restart: unless-stoppedconfiguration容器自动重启。 如果你在群模式下运行,那将是自动的。

我通常避免定义一个容器名称,但在这种情况下,将只有一个jenkinsdocker容器,我希望能够查看与docker logs jenkins-docker来收集像初始pipe理员login令牌。

我的Dockerfile和这个图像的其他依赖可在以下urlfind: https : //github.com/bmitch3020/jenkins-docker