持续部署平台搭建

https://gogs.io/
https://drone.io/
https://goharbor.io/

gogs+drone+harbor方式构建,不哆嗦直接上

安装docker

curl -sSL https://get.daocloud.io/docker | sh
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
curl -L https://github.com/docker/compose/releases/download/1.23.0-rc3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

卸载docker

# 卸载Docker CE
#sudo apt-get purge docker-ce
# 卸载Docker EE
#sudo apt-get purge docker-ee
# 删除Docker镜像、容器、数据卷等文件
#sudo rm -rf /var/lib/docker

部署平台

version: '3'
services:
  db:
    image: postgres:10
    hostname: gogs
    hostname: gogs-db
    container_name: gogs-db
    restart: always
    environment:
       POSTGRES_PASSWORD: postgres
    volumes:
      - ./gogsdb:/var/lib/postgresql/data
    ports:
      - "5432:5432"
    networks:
      cinet:
        ipv4_address: '172.72.72.72'
  gogs:
    image: gogs/gogs
    hostname: gogs
    container_name: gogs
    restart: always
    volumes:
      - ./gogs:/data
    ports:
      - "8022:22"
      - "3000:3000"
    networks:
      cinet:
        ipv4_address: '172.72.72.69'
    depends_on:
      - db
  drone-server:
    image: drone/drone:1.3.1
    hostname: drone
    container_name: drone
    restart: always
    ports:
      - "9000:80"
    networks:
      cinet:
        ipv4_address: '172.72.72.96'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_DEBUG=true
      - DRONE_OPEN= false
      - DRONE_LOGS_TRACE=true
      - DRONE_TLS_AUTOCERT=false
      - DRONE_AGENTS_ENABLED=true
      - DRONE_GIT_ALWAYS_AUTH=false
      - DRONE_GOGS_SERVER=http://172.72.72.69:3000
      - DRONE_RPC_SECRET=123456
      - DRONE_SERVER_PROTO=http
      - DRONE_SERVER_HOST=172.72.72.96
      - DRONE_DATABASE_DRIVER=postgres
      - DRONE_DATABASE_DATASOURCE=postgres://drone:[email protected].72:5432/drone?sslmode=disable
  drone-agent:
    image: drone/agent:latest
    hostname: drone-agent
    container_name: drone-agent
    restart: always
    networks:
      cinet:
        ipv4_address: '172.72.72.99'
    environment:
      - DRONE_DEBUG=true
      - DRONE_RPC_PROTO=http
      - DRONE_RPC_SERVER=http://172.72.72.96:80
      - DRONE_RPC_SECRET=123456
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_RUNNER_NAME=agent
    volumes:
      - /etc/localtime:/etc/localtime
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - drone-server
networks:
  cinet:
    ipam:
      driver: default
      config:
        - subnet: 172.72.72.0/16

Pipeline

---
kind: pipeline
type: docker
name: build
clone:
  git clone:
    image: plugins/git
    skip_verify: true
workspace:
  base: /app
  path: .
pipeline:
  build& push:
    image: plugins/docker
    username: username
    password:
      from_secret: password
    debug: true
    build_args:
      - ENV=prod
    tag:
      - ${CI_COMMIT_SHA:0:10}
    insecure: true
    dockerfile: cicd/Dockerfile
    registry: harbor-repo-url
    repo: image-url
    when:
      branch: master
      event: [push,tag]
pipeline:
  notification:
    image: guoxudongdocker/drone-dingtalk
    token:
      from_secret: password
    type: markdown
    message_color: true
    message_pic: true
    sha_link: true
    when:
      status: [success, failure]

原文地址:https://www.cnblogs.com/meilong/p/chi-xu-bu-shu-ping-tai-da-jian.html

时间: 2024-10-10 00:48:44

持续部署平台搭建的相关文章

基于Saltstack、Artifactory打造传统模式下持续部署平台

一. 持续部署 1. 现状 由于没有建立标准的持续部署流程,导致了版本管理混乱,制品管理混乱,上线持续时间长,上线测试覆盖不全面,业务流量上升后故障较多,排查复杂.运维.测试.开发人员每次版本迭代的时候,都要可能需要经历一次通宵的历练,并且这种在上线的第二天依然会出现很多线上故障. 2. 痛点 ·自动化发布体系覆盖率低.·无标准化发布的流程.a) 只注重敏捷.忽视质量问题:b) 变更频繁导致故障率增加:c) 开发语言种类多,发布制品管理混乱,发布方式复杂:·安全问题容易被忽视. 二. 工具介绍

Jenkins Gitlab持续集成打包平台搭建

相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点.更多介绍参考[维基](https://en.wikipedia.org/wiki/Jenkins_(software)介绍. Gitlab GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目,更多介绍参考维基

基于rhel7.2的Zabbix平台搭建和部署(五)

基于rhel7.2的Zabbix平台搭建和部署(五) zabbix3.2.1邮件报警设置 说明:zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,zabiix监控运行正常. 在zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱. 一.zabbix报警部署步骤(操作在Zabbix监控服务端进行): 安装sendmail两个依赖包 [[email protected] ~]# yum install -y perl-Net-SSLea

【iOS】Jenkins Gitlab持续集成打包平台搭建

Jenkins Gitlab持续集成打包平台搭建 SkySeraph July. 18th 2016 Email:[email protected] 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com 1. 相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点.更多介绍参考维基介绍. Gitlab GitLab是一个利用R

基于rhel7.2的Zabbix平台搭建和部署(一)

基于rhel7.2的zabbix平台搭建和部署(一) 一.实验环境: (1)虚拟机:rhel7.2 x86_64 (2)数据库:mysql5.7.13 (3)nginx1.10.2 (4)PHP5.6.27 (5)zabbix 二.安装编译工具及库文件 [[email protected] ~]# yum-y install make apr* autoconf automake curl-devel gcc gcc-c++  openssl openssl-devel gd kernel ke

基于rhel7.2的Zabbix平台搭建和部署(四)

基于rhel7.2的Zabbix平台搭建和部署(四) 一.实现zabbix添加监测项,添加对Linux主机的监控. 说明:先在"配置"-"主机"里添加主机监控,监控os资源:内存,cpu,io,负载,带宽等. (1)登录zabbix,先在"配置"-"主机"里单击"创建主机": (2)在"主机"标签,填写相关信息 注:这个主机名字必须和hostname的一模一样,这里用的ip就是被监控主机

基于rhel7.2的Zabbix平台搭建和部署(二)

 基于rhel7.2的Zabbix平台搭建和部署(二) 一.监控系统Zabbix-3.2.1的安装 zabbix-server端的操作 说明:zabbix服务器端要提前安装好LNMP环境(mysql,nginx,php5的安装目录均是/usr/local) (1)创建zabbix运行的用户 [[email protected] ~]# groupadd zabbix [[email protected] ~]# useradd -g zabbix [[email protected] ~]# g

基于rhel7.2的Zabbix平台搭建和部署(三)

基于rhel7.2的Zabbix平台搭建和部署(三) 一.优化zabbix服务端配置: 此时你看到的是英文页面,我们现在让其显示简体中文页面. (1)由于在安装数据库时已经将zabbix库设置了utf-8字符 首先确定zabbix开启了中文支持功能: 说明:登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/usr/local/nginx1.10/html/zabbix/),打开locales.inc.php文件. [[email protected] ~]# cd /usr

开源日志分析系统ELK平台搭建部署

开源日志分析系统ELK平台搭建部署 一.前言 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总. 集中化管理