如何为Jenkins

时间:2017-09-12 04:16:24

标签: docker jenkins docker-compose dockerfile

我也是Docker和Jenkins的新手。我有一个关于Dockerfile和docker-compose.yml文件配置的问题。我尝试使用最简单的配置来正确设置这些文件。构建和推送正确完成,但jenkins应用程序未在我的localhost(127.0.0.1)上运行。

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

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

感谢您的任何建议。

3 个答案:

答案 0 :(得分:3)

为詹金斯设计的docker-compose

docker-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。

使用相同设置重新创建新容器

volumne安装了jenkins_home,是您存放所有工作和设置等的地方。

在创建每个作业或您想要的方式时,备份已安装的卷jenkins_home。 每当发生任何崩溃时,使用相同的docker-compose文件运行Jenkins并将jenkins_home文件夹替换为备份。

再次重新启动/重新启动jenkins

列出容器

docker ps -a

重启容器

docker restart <Required_Container_ID_To_Restart>

答案 1 :(得分:2)

我一直在使用如下所示的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

我的图像是一个本地构建的Jenkins图像,基于jenkins / jenkins:lts,它添加​​了一些其他组件,如docker本身,我安装了docker socket以允许我在docker上运行命令主办。您的用例可能不需要这样做。对您而言,重要的部分是发布的端口,对我来说只有8080,而/ var / jenkins_home的卷用于保留图像更新之间的Jenkins配置。

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

我通常会避免定义容器名称,但在这种情况下,只会有一个jenkins-docker容器,我希望能够使用docker logs jenkins-docker查看日志以收集初始管理员之类的内容登录令牌。

我的Dockerfile和此图片的其他依赖项位于:https://github.com/bmitch3020/jenkins-docker

答案 2 :(得分:0)

  

HyperV with docker for Windows。

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

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