All Projects → alicfeng → gogs_drone_docker

alicfeng / gogs_drone_docker

Licence: other
For the better CI as well as CD using gogs and drone base on Docker

Programming Languages

Dockerfile
14818 projects

Projects that are alternatives of or similar to gogs drone docker

ci
Gogs( GitHub )+Drone+Docker Registry | 私有化的 CI/CD & DevOps 解决方案
Stars: ✭ 37 (-48.61%)
Mutual labels:  drone, gogs
Jmuxer
jMuxer - a simple javascript mp4 muxer that works in both browser and node environment.
Stars: ✭ 222 (+208.33%)
Mutual labels:  drone
Imageprocessing
MicaSense RedEdge and Altum image processing tutorials
Stars: ✭ 139 (+93.06%)
Mutual labels:  drone
Clover
ROS-based framework and RPi image to control PX4-powered drones 🍀
Stars: ✭ 177 (+145.83%)
Mutual labels:  drone
Djim100 People Detect Track
A ros demo for people detection and tracking on DJI M100 drone
Stars: ✭ 150 (+108.33%)
Mutual labels:  drone
Drone Cache
A Drone plugin for caching current workspace files between builds to reduce your build times
Stars: ✭ 194 (+169.44%)
Mutual labels:  drone
Esp Drone
Mini Drone/Quadcopter Firmware for ESP32 and ESP32-S Series SoCs.
Stars: ✭ 132 (+83.33%)
Mutual labels:  drone
Dronin
The dRonin flight controller software.
Stars: ✭ 238 (+230.56%)
Mutual labels:  drone
Source one
Open Source FPV Drone Frame
Stars: ✭ 220 (+205.56%)
Mutual labels:  drone
Mav active 3d planning
Modular framework for online informative path planning.
Stars: ✭ 164 (+127.78%)
Mutual labels:  drone
Drone Gke
Drone plugin for deploying containers to Google Kubernetes Engine (GKE)
Stars: ✭ 159 (+120.83%)
Mutual labels:  drone
Openkai
OpenKAI: A modern framework for unmanned vehicle and robot control
Stars: ✭ 150 (+108.33%)
Mutual labels:  drone
Hands On Devops
A hands-on DevOps course covering the culture, methods and repeated practices of modern software development involving Packer, Vagrant, VirtualBox, Ansible, Kubernetes, K3s, MetalLB, Traefik, Docker-Compose, Docker, Taiga, GitLab, Drone CI, SonarQube, Selenium, InSpec, Alpine 3.10, Ubuntu-bionic, CentOS 7...
Stars: ✭ 196 (+172.22%)
Mutual labels:  drone
Qgroundcontrol
Cross-platform ground control station for drones (Android, iOS, Mac OS, Linux, Windows)
Stars: ✭ 2,026 (+2713.89%)
Mutual labels:  drone
University1652 Baseline
ACM Multimedia2020 University-1652: A Multi-view Multi-source Benchmark for Drone-based Geo-localization 🚁 annotates 1652 buildings in 72 universities around the world.
Stars: ✭ 232 (+222.22%)
Mutual labels:  drone
Drone Keyboard
Drone Keyboard for Tello
Stars: ✭ 136 (+88.89%)
Mutual labels:  drone
Drone Ssh
Drone plugin for executing remote ssh commands
Stars: ✭ 155 (+115.28%)
Mutual labels:  drone
Env Ci
Get environment variables exposed by CI services
Stars: ✭ 180 (+150%)
Mutual labels:  drone
Faster
3D Trajectory Planner in Unknown Environments
Stars: ✭ 246 (+241.67%)
Mutual labels:  drone
Drone Docker
Drone plugin for publishing Docker images using Docker-in-Docker
Stars: ✭ 238 (+230.56%)
Mutual labels:  drone

基于 Kubernetes 部署方案于 alicfeng/kubernetes_cicd 仓库

前言

CI / CD( 持续集成 / 持续部署 )方案是DevOps中不可或缺的流程之一,最近也了解了部分的相关的解决方案,最终选择了Drone + Gogs基于docker容器环境来构建CI / CD,本文将分享下如何构建此平台以及如何快速地使用到项目开发中。

应该会有一个疑问?我为什么不选择主流的GitLab + Jenkins 两个最佳搭档来构建呢?

  • GitLab是使用Ruby编写的,Jenkins更是了不起,使用Java来编写的,项目整体比较膨大,同时它们对硬件、CPU等开销比较高
  • DroneGogs皆是使用Go语言来编写构建,在整体的语言性能与内存开销算是有一定的优势,同时Drone支持GithubGitLabGogs以及Bitbucket,这点很不错!反手就是一个赞?

GitLab + Jenkins该组合还是一个不错的选择,我并没有反对,为何呢?GitLab是一个非常成熟的git工具之一,同时Jenkins也是非常成熟的CICD组件,功能非常强大。 但是我还是要站在正义的一边,选择Drone + Gogs。O(∩_∩)O哈哈~

说明

drone升级使用1.0.0-rc6版本,此版本并非稳定版本,推荐使用1版本甚至是0.8.6更稳定的版本。1.0后的版本较之前而言,配置更加灵活、优化版本,同时界面也变化了。drone

环境

使用的前提,必须符合以下条件

  • 系统安装了Docker,同时要安装了Docker编排工具docker-compose
  • 主流的x64位系统,LinuxMacWindow
  • 安装了git版本控制工具

安装

安装非常简单,拉取docker-compose.yml编排文件,基于Docker环境自动构建即可! 同步至github | 戳戳戳

git clone https://github.com/alicfeng/gogs-drone-docker.git
cd gogs-drone-docker && docker-compose up -d

执行docker ps来看下容器的运行情况 alicfeng - docker ps

对应的配置文件可以根据项目的需求自由灵活改变,同时像我这样强迫症的人,我不喜欢使用IP来进行访问请求的以及http协议访问,我会使用nginx代理。不详细说了

至此,我们已经完成了平台的构建工作了。我们来欣赏下干杯 Gogs Drone

有两个地方需要注意:

  • Drone登录的账号需要在Gogs设置为管理员,他俩兄弟的账密是互通的
  • Gogs的仓库会自动同步到Drone上,此时,需要在Drone开启钩子才能正常运行

使用

好了,是时候来体验两把了,这里需要有一个前提了,O(∩_∩)O哈哈~,你需要了解它是如何运行的,根据什么来自动化构建的 每当分支的代码更新的时候,Gogs会动过钩子同步通知Drone,而Drone收到通知之后会发生一系列动作

  • 通过git插件clone分支代码到容器里面

  • 测试

  • 编译代码,构建可执行文件

  • 将项目和运行环境打包成镜像,发布到Registry

  • 部署至生产环境

  • 发送邮件等通知信息,这里还有很多插件,比如微信、钉钉、电报等

    构建的剧本是通过.drone.yml文件编排的,基于Docker镜像进行构建,很nice~下面简单体验下Laravel项目的即可!githublaravelvue等前后端编排的yml文件。

pipeline:
  build:
    image: motecshine/laravelphp71
    commands:
    - mv $(pwd)/.env.dev $(pwd)/.env
    - composer config repo.packagist composer https://packagist.phpcomposer.com
    - composer install --no-scripts --no-dev
    # others

drone

drone

价值源于技术,技术源于分享

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].