繁体   English   中英

如何为Jenkins配置dockerfile和docker-compose

[英]How to configure a dockerfile and docker-compose for Jenkins

我在Docker和Jenkins中也绝对是新手。 我对Dockerfile和docker-compose.yml文件的配置有疑问。 我尝试使用最简单的配置来正确设置这些文件。 构建和推送正确完成,但是jenkins应用程序未在我的本地主机(127.0.0.1)上运行。

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

第二个问题是,什么是处理容器崩溃的最佳方法。 可以说,如果容器崩溃,我想使用相同的设置重新创建一个新的容器。 最好的方法是仅创建一个新的外壳文件(如“ crash.sh”)并在那里提供我想要使用相同设置创建新容器的信息吗? 在这里提到了类似的内容: https : //blog.codeship.com/ensuring-containers-are-always-running-with-dockers-restart-policy/

感谢您的任何建议。

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。

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

大量安装的jenkins_home,是您存储所有作业和设置等的地方。

在创建每个作业或所需方式时,对已装入的卷jenkins_home进行备份。 每当发生崩溃时,请使用相同的docker-compose文件运行Jenkins,并用备份替换jenkins_home文件夹。

重新运行/重新启动詹金斯

列出容器

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

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

为了从错误中恢复,我已经restart: unless-stopped在docker-compose.yml中restart: unless-stopped ,以将容器配置为自动重新启动。 如果您以群体模式运行此程序,那将是自动的。

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

该镜像的我的Dockerfile和其他依赖项可在以下位置获得: https : //github.com/bmitch3020/jenkins-docker

HyperV与适用于Windows的docker。

在这种情况下,必须确保将所有已发布的端口(例如5000)进行端口转发。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM