webhook替换docker容器_webhook docker - CSDN
精华内容
参与话题
  • 如果你在 Docker Hub 上有自动构建仓库,可以在仓库中发生某个事件时通过 Webhook 触发其他应用程序的动作。Docker Hub webhook 在镜像构建时,或者添加新标签到自动构建仓库时触发。 在 ...

    原文地址

    如果你在 Docker Hub 上有自动构建仓库,可以在仓库中发生某个事件时通过 Webhook 触发其他应用程序的动作。Docker Hub webhook 在镜像构建时,或者添加新标签到自动构建仓库时触发。

    https://hub.docker.com/r/<USERNAME>/<REPOSITORY>/~/settings/webhooks/ 配置 webhook。

    webhooks

    通过 webhook,你可以指定一个目标 URL 用于 POST。Docker Hub 向指定的 URL 发送的 POST 数据如下:

    {
      "callback_url": "https://registry.hub.docker.com/u/svendowideit/testhook/hook/2141b5bi5i5b02bec211i4eeih0242eg11000a/",
      "push_data": {
        "images": [
            "27d47432a69bca5f2700e4dff7de0388ed65f9d3fb1ec645e2bc24c223dc1cc3",
            "51a9c7c1f8bb2fa19bcd09789a34e63f35abb80044bc10196e304f6634cc582c",
            "..."
        ],
        "pushed_at": 1.417566161e+09,
        "pusher": "trustedbuilder",
        "tag": "latest"
      },
      "repository": {
        "comment_count": "0",
        "date_created": 1.417494799e+09,
        "description": "",
        "dockerfile": "#\n# BUILD\u0009\u0009docker build -t svendowideit/apt-cacher .\n# RUN\u0009\u0009docker run -d -p 3142:3142 -name apt-cacher-run apt-cacher\n#\n# and then you can run containers with:\n# \u0009\u0009docker run -t -i -rm -e http_proxy http://192.168.1.2:3142/ debian bash\n#\nFROM\u0009\u0009ubuntu\n\n\nVOLUME\u0009\u0009[\/var/cache/apt-cacher-ng\]\nRUN\u0009\u0009apt-get update ; apt-get install -yq apt-cacher-ng\n\nEXPOSE \u0009\u00093142\nCMD\u0009\u0009chmod 777 /var/cache/apt-cacher-ng ; /etc/init.d/apt-cacher-ng start ; tail -f /var/log/apt-cacher-ng/*\n",
        "full_description": "Docker Hub based automated build from a GitHub repo",
        "is_official": false,
        "is_private": true,
        "is_trusted": true,
        "name": "testhook",
        "namespace": "svendowideit",
        "owner": "svendowideit",
        "repo_name": "svendowideit/testhook",
        "repo_url": "https://registry.hub.docker.com/u/svendowideit/testhook/",
        "star_count": 0,
        "status": "Active"
      }
    }

    注意:如果要测试你的 webhook,建议使用类似 requestb.in这样的工具。同时,Docker Hub 服务器无法用 IP 地址过滤。

    展开全文
  • 安装jenkins/jinkins, 这里我们注意一下如果直接用jinkins的话不是最新版本,可能很多插件不能使用...docker run -d --name=jenkins -p 8080:8080 -p 50000:50000 -v /Users/zhujiule/Downloads/Docker/k8s-jen...

    软件准备

    备用软件下载地址:

    链接:https://pan.baidu.com/s/18_jXfd3e0vDTuf7hHbpcEg 密码:rknv

    安装Docker

    机器ip :192.168.8.251

    wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    yum install docker-ce -y
    systemctl start docker
    systemctl enable docker
    

    添加容器加速

    如果机器未配置下载容器镜像加速,需要先设置一下

    
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    

    如果机器未配置下载容器镜像加速,需要先设置一下

    
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
    }
    EOF
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

    安装jenkins容器

    准备jdk环境和maven环境

    将我们第一步准备的软件上传到服务器的某个文件夹下,执行如下操作

     tar zxvf jdk-8u45-linux-x64.tar.gz
     mv jdk1.8.0_45 /usr/local/jdk
     tar zxf apache-maven-3.5.0-bin.tar.gz
     mv apache-maven-3.5.0 /usr/local/maven
    

    下载并安装容器

    docker run -d --name jenkins -p 80:8080 -p 50000:50000 -u root  \
       -v /opt/jenkins_home:/var/jenkins_home \
       -v /var/run/docker.sock:/var/run/docker.sock   \
       -v /usr/bin/docker:/usr/bin/docker \
       -v /usr/local/apache-maven-3.5.0:/usr/local/maven \
       -v /usr/local/jdk1.8.0_45:/usr/local/jdk \
       -v /etc/localtime:/etc/localtime \
       --name jenkins jenkins/jenkins:lts
    

    这样jenkins容器就很快跑起来了,但是在访问容器之前我们最好先配置一下插件的加速镜像,否则下载插件的过程可能慢的难以想象

    配置插件下载加速

    这里用sed替换的形式把/opt/jenkins_home/updates下面的默认地址给更换为清华大学的地址,搜索引擎更换为百度

    cd /opt/jenkins_home/updates
    sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && \
    sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
    

    访问jenkins服务

    访问对应的jenkins服务,默认密码需要进入到容器bash中特定位置获取

    docker exec -it jenkins bash
    查看安装的初始密码:cat /var/jenkins_home/secrets/initialAdminPassword

    配置自动化构建

    安装相关插件

    • 安装 必须的两个插件
      在这里插入图片描述
    • 配置jenkins工程的构建触发器(Build Triggers)
      在这里插入图片描述

    高级选项设置为如下;用于设置当提交到master分支的时候触发编译,并生成Secret token 用于gitlab使用

    在这里插入图片描述

    设置gitlab提交触发远程jenkins编译

    • 打开gitlab工程地址,设置中找到如下对应的项,根据需求填写
      在这里插入图片描述

    • 保存远程webhook,可保存多个地址
      在这里插入图片描述

    到此可以测试,提交代码到master后是否出发了远程 jenkins的编译。

    展开全文
  • 内容里详细介绍了如何实现,git push后...一步一步打造jenkins+docker+nodejs项目的自动部署环境 介绍 jenkins+docker+nodejs 自动部署 亮点 采用shell自定义脚本,控制集成部署环境更加方便灵活如果服务器更换,

    内容里详细介绍了如何实现,git push后,jenkins开始自动构建的步骤。

    http://www.jianshu.com/p/052a2401595a


    一步一步打造jenkins+docker+nodejs项目的自动部署环境

    介绍

    jenkins+docker+nodejs 自动部署

    亮点

    • 采用shell自定义脚本,控制集成部署环境更加方便灵活
    • 如果服务器更换,重新部署的工作量会比较小
    • 涉及的docker命令,会有讲解(不知道算不算亮点)

    前提

    1. 代码通过git管理,放在了码云上(放在github或者其他平台也都可以)
    2. 服务器用的亚马逊aws(阿里云,青云也一样)
    3. 服务器用的ubuntu 16.04 (服务器系统不同,只是某些shell命令不同而已,windows服务器用户,呃,我敬你是条汉子)
    4. 客户端用的mac
    5. docker镜像平台为dockerhub

    准备

    1. 服务器开通SSH
    2. 服务器安装Docker
    3. 掌握基本的shell命令(本文出现的shell命令都会进行说明,cd啥的就不说了...)

    开始

    docker运行jenkins

    1. 服务器 安装docker
    2. 服务器拉取docker jenkins镜像:docker pull jenkins:latest

      • 拉取jenkins latest版本镜像
      • docker pull jenkins:2.7.4 拉取jenkins 2.7.4版本镜像
    3. 服务器运行dokcer jenkins容器:sudo docker run -d --name jenkins_node -p 49002:8080 -v /var/jenkins_node:/var/jenkins_home jenkins:latest

      • 这句命令的意思是:在后台运行一个基于jenkins:latest镜像的容器, 容器的名字叫做 jenkins_node ,把容器的8080端口映射为49002端口,并且把服务器上的/var/jenkins_node目录挂在到docker容器上的/var/jenkins_home目录
      • -d 后台运行docker容器
        • 如果不加-d则,容器运行会占用此终端,如果终端关闭,则容器也相应关闭,jenkins就无法访问了。加上-d,容器会在后台运行。
      • --name 为容器起个别名
        • 如果不起别名,则系统会默认分配一个随机别名,类似gklasd_sdfwe。起了别名后,后续会通过该别名管理该docker容器,也就是管理jenkins。
      • -p docker容器端口映射
        • jenkins服务是运行在docker里的,docker默认不对外暴露端口的
      • -v 文件挂载
        • 如果不挂载,则jenkins所有log、用户配置文件都会在docker容器内,如果容器销毁,则jenkins得重新配置一遍。挂载出来方便jenkins迁移以及管理
        • 运行成功截图

          jenkins run
    4. 查看你服务器上的的/var/jenkins_node文件夹,当出现下图所有文件时,则说明jenkins启动成功,否则再等等...30秒左右即可


    5. 不出意外,浏览器访问http://host:49002 ,会出现如下界面


      • 打开initialAdminPassword文件,复制文件内容 initialAdminPassword文件位置为:

        为了方便,用mac演示一下
    6. initialAdminPassword文件内容粘贴到Administrator password
    7. 如果对于jenkins比较熟悉,下面7,8自己随意


    8. 等...


    9. 设置admin user

    node项目配置

    jenkins配置

    插件安装

    1. 首页,点击系统管理 --> 管理插件

    2. 选择“可选插件”

    3. 右上角过滤SSH,--> 选择Publish Over SSH -->点击 直接安装

    4. 等待安装完成

    系统设置

    1. 首页,点击系统管理 --> 系统设置

    2. 拉到最下面找到 "Publish over SSH" , 设置服务器的SSH信息

    项目配置

    1. 首页,点击左上角”新建”

    2. General: 只填 项目名称即可

    3. 源码管理: 填写Git信息

      • 如果Git项目为私有项目,则需要点击Add添加你的Git账号,完成之后在这里选择你的Git账号

    4. 构建环境:参照下图


      • 图中代码如下:
        sudo docker stop node || true \
            && sudo docker rm node || true \
            && cd /var/jenkins_node/workspace/node \
            && sudo docker build --rm --no-cache=true  -t node  - < Dockerfile \
            && sudo docker run -d  --name node -p 3000:3000 -v /var/jenkins_node/workspace/node:/home/project node
    5. 保存,返回到首页

    6. 选择刚刚创建的项目,点击"立即构建"
      • 此时服务器本地硬盘上,/var/jenkins_node/workspace/下应该有node(你创建的jenkins项目名)文件夹
      • /var/jenkins_node/ 目录内容应该如下图

        为了方便查看,继续用mac演示目录
      • 构建成功,浏览器输入 http://host:3000 应该能看到下图内容

    自动部署

    如果想要git push,jenkins就自动部署,那就继续往下看...

    1. jenkins --> 首页 --> 用户

    2. 设置 --> 点击 "show API Token"

    3. 复制API Token内容

    4. 返回首页 --> node(项目名称) --> 配置 --> 构建触发器 --> 选择 "触发远程构建" -->粘贴"API Token"内容到"身份验证令牌"

    5. 登陆git平台,找到你的项目,选择管理,选择webhook

      • URL 中 node 请替换为你在jenkins上创建的项目名称
      • token为复制的 API Token内容
    6. 此时你git push,会发现jenkins并没有自动构建,是因为jenkins的安全策略导致的,还需要如下设置
      • jenkins首页,选择 系统管理-->Configure Global Security(系统设置下面那个) 进行如下设置

    至此,已完成 git push 后,jenkins 自动构建自动部署。

    对于Docker感兴趣,可以看下这篇文章:Docker常用命令


    展开全文
  • 1.jenkins安装 ... 启动jenkins容器 docker run -itd -p 8080:8080 -p 50000:50000 -v /root/docker/jenkins/jenkins_home:/var/jenkins_home jenkins ...

    Table of Contents

    1.jenkins安装

     拉取镜像

    启动

    2.系统初始化配置

    登录解锁Jenkins

    自定义安装Jenkins插件 

    创建用户

    配置jenkinsURL

    3.配置运行环境

    ssh 主机

    jdk

    maven

    maven 插件

    ssh插件

    Webhook Trigger插件

    4.创建工程自动部署

    创建项目

    源码管理

    构建触发器

    在 GitHub 上添加 WebHook

    构建


     

    1.jenkins安装

    •  拉取镜像

    注意:jenkins停用,选择 jenkins/jenkins  或 jenkinsci/blueocean

    docker pull jenkinsci/blueocean
    • 启动

    docker run -itd -p 8080:8080 -p 50000:50000 -v /root/docker/jenkins/jenkins_home/:/var/jenkins_home --privileged=true jenkinsci/blueocean
    

    注意:报错是没有目录权限

    [root@localhost jenkins_home]# docker logs 890ed1621b6f
    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?

    解决:

    chmod 777 /root/docker/jenkins/jenkins_home/

    账号 密码

    docker logs -f --tail 20 f85520a2a5d1
    

     

    2.系统初始化配置

    • 登录解锁Jenkins

    http://192.168.71.128:8080

    会加载一会

     

    填写默认生成的密码

    • 自定义安装Jenkins插件 

    打×的插件是由于网络传输导致的安装失败,后面再重新安装即可。

     

    修改Update Sie:Manage Jenkins—>Manage Plugins-->选择高级Advanced,修改Update Sie。【详细的Jenkins的镜像地址查询:http://mirrors.jenkins-ci.org/status.html

    https://updates.jenkins.io/update-center.json 替换为

    https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

    或者下载上传

     

    • 创建用户

    也可以不创建,选择使用 admin 账户继续,后面有需要仍然有机会注册新账户。

    • 配置jenkinsURL

     

    3.配置运行环境

    • ssh 主机

    • jdk

    AddJDK,填写jdk的名称及安装目录,取消勾选自动安装

    docker exec -it c545295fd87d /bin/bash
    
    cat $JAVA_HOME
    
    

     

    • maven

     

    • maven 插件

    Manage plugins,点击Available,搜索maven integration,选择安装后重启jenkins

     

    • ssh插件

     

    • Webhook Trigger插件

     

     

    4.创建工程自动部署

    • 创建项目

     

    • 源码管理

     

    • 构建触发器

     

    • GitHub 上添加 WebHook

    http://用户名:webToken@Jenkins服务器地址:端口/generic-webhook-trigger/invoke

    如 http://admin:password@192.168.1.1:8080/generic-webhook-trigger/invoke

     

    • 构建

    #
    cp  /root/docker/jenkins/jenkins_home/workspace/test-jenkins/target/test-jenkins-0.0.1-SNAPSHOT.jar  /root/docker/jenkins/jar/
    
    #
    docker stop test-jk
    
    #
    docker rm test-jk
    
    #
    docker run -itd -p 9090:9090 --name test-jk \
    -e JAVA_OPTS='-Xms256m -Xmx512m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m' \
    -v /root/docker/jenkins/jar:/root/docker/jenkins/jar openjdk:8u111 \
    java -jar /root/docker/jenkins/jar/test-jenkins-0.0.1-SNAPSHOT.jar 

     

     

     

     

     

     

     

     

    展开全文
  • 如果没有一个可以使用 Docker 的 Jenkins,请先查看这篇文章搭建 使用 Docker 搭建 Jenkins 并自动化部署基于 Docker 的服务(一、Jenkins 搭建篇)
  • 使用Docker安装Jenkins并添加插件

    千次阅读 2018-09-17 22:06:38
    Jenkins使用记录 Jenkins使用记录 创建项目 源码管理 构建触发器 其它功能 额外配置 ...省略了其他docker运行参数,只列出了缺少的包映射volume ...利用docker安装Jenkins ...docker pull jenkins ...
  • 一步一步打造jenkins+docker+nodejs项目的自动部署环境
  • Prometheus配置钉钉告警

    2019-09-18 05:54:35
    Prometheus配置钉钉告警获取钉钉tokendocker部署prometheus-webhook-dingtalkprometheus-webhook-dingtalk地址:https://github.com/timonwong/prometheus-webhook-dingtalk钉钉token如下:...
  • docker镜像仓库harbor快速部署和使用

    千次阅读 2016-10-31 09:59:47
    简介 Harbor是VMware公司最近开源的企业级Docker Registry项目, 项目地址为...它以Docker公司开源的registry为基础,提供了管理UI, 基于角色的访问控制(Role Based Access Control),AD/LDAP
  • 一、Docker 容器监控报警方式    接着上篇文章的记录,看到grafana的版本已经更新到4.2了,并且在4.0以后的版本中,加入了Alert Notifications 功能,这样在对容器 监控完,可以加入报警规则。根据官网介绍,...
  • Harbor部署和使用

    万次阅读 2016-11-21 22:42:14
    简介Harbor是VMware...其目标是帮助用户迅速搭建一个企业级的Dockerregistry服务。它以Docker公司开源的registry为基础,提供了管理UI,基于角色的访问控制(Role Based Access Control),AD/LDAP集成、以及审计日志
  • 前言 在日常开发中,经常会有发布的需求,而且经常会碰到各种环境,比如:开发环境、测试环境、生产环境。虽然可以使用手动构建、上传服务器部署的方式,但在微服务架构下一个项目经常包含多个微服务的部署,如果用...
  • 基于Nodejs项目的CI/CD(gitlab+verdaccio+jenkins)CI/CD场景jenkins搭建Jenkins配置gitlab webhook配置检查Jenkins构建 CI/CD场景 所有软件都用docker部署,jenkins在测试服务器上,developer 上传分支代码提交...
  • 前言 gitlab 11.1内置了CI/CD,这个特性从gitlab 8+就开始有了,不过配置比较琐碎 经过几个大版本的迭代,现在已经简化了使用方式,也修复...至于为什么采用docker来部署,好迁移,升级也方便(因为数据和配置文件是独立...
  • 提供:ZStack云计算 内容简介Want a minimal setup ...答案很简单:Drone.io利用Docker容器运行测试任务,同时可与 GitHub、GitLab (自我托管且基于服务) 以及Bitbucket实现协作。Drone由Go语言编写而成且可利用D
  • Kubernetes 中如何保证优雅地停止 Pod

    千次阅读 2019-07-28 00:11:51
    一直以来我对优雅地停止 Pod 这件事理解得很单纯:不就利用是 PreStop hook 做优雅退出吗?但这周听了组里大哥的教诲之后,发现很多场景下 PreStop ho...
  • Docker+Prometheus+Alertmanager+Webhook钉钉告警1、环境部署1.1 二进制部署1.2 docker部署1.2.1 webhook1.2.2 alertmanager二、 配置文件2.1 alertmanager配置文件2.2 prometheus配置文件3、AlertManager 配置邮件...
  • 吐槽:Docker真的好吗?

    千次阅读 2015-02-12 11:22:13
    【编者的话】本文是一篇对Docker“吐槽”的文章,作者从Dockerfile、缓存、分层文件系统、Docker Hub、安全、容器和虚拟机几个方面入手,阐述了Docker容器技术目前存在的一些问题,以至于说Docker的存在并没有必要...
  • MySQL 到底能不能放到 Docker 里跑?同程旅游目前已经有超过一千个 MySQL 实例安全稳定地跑在 Docker 平台上。前 * 言前几月经常看到有 MySQL 到底能不能放到 Docker 里跑的各种讨论。这样做是错的!这样做是对的!...
  • k8s实战之jenkins流水线CICD流程详解

    千次阅读 2019-09-12 15:50:07
    前言 我们在日常开发中,经常会有各种各样复杂的发布需求,而且经常会碰到各种环境,比如:开发环境、测试环境、生产环境。虽然可以使用手动构建、上传服务器部署的方式,如果我们有多个项目应用,每个项目应用又...
1 2 3 4 5 ... 19
收藏数 378
精华内容 151
关键字:

webhook替换docker容器