摘要:域名和应用记得一样接着我们创建一个管理员用户,然后其他的都默认,点击立即安装完成。初始化成功之后我们可以在里边创建一个仓库,然后登陆。比如配置文件需要的密钥,用户名和密码,一些环境变量都可以在设置,构建状态徽章可以在你的项目文件加上去。
drone是一个基于容器的本地持续交付平台,和Jenkins是差不多的,然后配合轻量级的gogs来作为git管理,都是基于golang开发的很符合我的需求,我们来把它们结合作为一个完整的CI、CD平台。
首先我们要先安装docker,上次的篇幅我们已经说过了我就不赘述了。
需要的东西有:linux,docker,docker-compose,drone,gogs,git等。
安装gogs和drone配合荣锋亮大哥的yml文件和docker-compose我们可以很容易安装他们:
version: "3" services: drone-server: image: drone/drone:latest ports: - "8080:80" - 8843:443 - 9000 volumes: - ./drone:/var/lib/drone/ - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_OPEN=true - DRONE_SERVER_HOST=drone-server - DRONE_DEBUG=true - DRONE_GIT_ALWAYS_AUTH=false - DRONE_GOGS=true - DRONE_GOGS_SKIP_VERIFY=false - DRONE_GOGS_SERVER=http://gogs:3000 - DRONE_PROVIDER=gogs - DRONE_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite - DRONE_DATABASE_DRIVER=sqlite3 - DRONE_SERVER_PROTO=http - DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw - DRONE_SECRET=ALQU2M0KdptXUdTPKcEw gogs: image: gogs/gogs:latest ports: - "10022:22" - "3000:3000" volumes: - ./data/gogs:/data depends_on: - mysql mysql: image: mysql:5.7.16 volumes: - ./gogs/mysql:/var/lib/mysql - /var/run/docker.sock:/var/run/docker.sock ports: - 3308:3306 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: pass MYSQL_DATABASE: gogs MYSQL_USER: gogs MYSQL_PASSWORD: pass TZ: Asia/Shanghai drone-agent: image: drone/agent:latest depends_on: - drone-server environment: - DRONE_RPC_SERVER=http://drone-server - DRONE_RPC_SECRET=ALQU2M0KdptXUdTPKcEw - DRONE_DEBUG=true - DOCKER_HOST=tcp://docker-bind:2375 - DRONE_SERVER=drone-server:9000 - DRONE_SECRET=ALQU2M0KdptXUdTPKcEw - DRONE_MAX_PROCS=5 docker-bind: image: docker:dind privileged: true # command: --storage-driver=overlay
我们创建一个存放docker-compose.yml文件的目录比如就叫gogs,然后我们把这些yml保存成docker-compose.yml,然后执行docker-compose来安装:
$ docker-compose up -d
配合yml文件,我们就安装好了drone-server和drone-agent还有gogs,然后我们用浏览器打开http://localhost:3000/来进入gogs并初始化它。
域名和应用URL记得一样接着我们创建一个管理员用户,然后其他的都默认,点击立即安装完成。
初始化成功之后我们可以在gogs里边创建一个仓库,然后登陆drone。
drone打开浏览器输入http://localhost/直接进入drone,密码是gogs的你的刚刚的账户和密码。
我们会看到一个刚刚创建的仓库,激活它!
激活之后,我们回到gogs那边,仓库的设置里边的webhook应该已经配置好了
我们可以测试web hook,如果没有问题的话,应该会提示成功。
上传源码测试没有问题之后,我们初始化我们的代码文件夹为git仓库,然后push到gogos上边
然后为你的仓库加上.drone.yml配置文件,drone-server会自动读取这个文件进行CI、CD操作等。以下这个是我们的示例文件
kind: pipeline name: demo steps: - name: build image: golang:1.11.4 commands: - pwd - go version - go build . - go test demo/util # - name: frontend # image: node:6 # commands: # - npm install # - npm test - name: publish image: plugins/docker:latest settings: username: from_secret: docker_username password: from_secret: docker_password repo: example/demo tags: latest - name: deploy image: appleboy/drone-ssh pull: true settings: host: example.me user: root key: from_secret: deploy_key script: - cd /data - mkdir app/ - cd /data/app - docker rmi -f example/demo - echo "login docker" - echo "login success, pulling..." - docker pull example/demo:latest - echo "image running" - docker run -p 8088:8088 -d example/demo - echo "run success"
我们首先进行简单的golang build和test操作然后根据Dockerfile文件把我们的程序构建成docker镜像,接着上传到docker hub中,然后通过drone-ssh插件部署这个镜像。
开始构建有了配置文件之后,推送代码我们就可以去drone查看构建进度:
drone的设置在进入drone的时候,选择一个项目我们可以进行一些必要的设置,比如配置secrets,定时任务和徽章等等。
比如配置文件需要的密钥,用户名和密码,一些环境变量都可以在secrets设置,构建状态徽章可以在你的项目README.md文件加上去。
项目加上徽章:
示例代码,本文完。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27743.html
摘要:所以我们选一个仓库仓库比较多,我这里选用,都行,根据需求自行选择访问端口,然后就没有然后了功能没有那么强大,不过占用资源少,速度快,我们稳定运行了几年了。 kubernetes集群三步安装 CI 概述 用一个可描述的配置定义整个工作流 程序员是很懒的动物,所以想各种办法解决重复劳动的问题,如果你的工作流中还在重复一些事,那么可能就得想想如何优化了 持续集成就是可以帮助我们解决重复的代码...
摘要:是的最佳实践部署编写文件的部署及其简单,采用的方式,类似于。具体如下此处需要注意的是在处的。登录配置项目此处输入的用户名和密码是的。支持和两个数据库。新的配置文件如下仔细查看关于的文档,需要我们手动创建数据库。其中有和相关的。 前言 整个基于k8s的pass平台,关键的一部分就是CICD。CICD又是devops的关键部分。之前主流的工具是Jenkins。今天主要介绍的是drone。...
摘要:是的最佳实践部署编写文件的部署及其简单,采用的方式,类似于。具体如下此处需要注意的是在处的。登录配置项目此处输入的用户名和密码是的。支持和两个数据库。新的配置文件如下仔细查看关于的文档,需要我们手动创建数据库。其中有和相关的。 前言 整个基于k8s的pass平台,关键的一部分就是CICD。CICD又是devops的关键部分。之前主流的工具是Jenkins。今天主要介绍的是drone。...
摘要:原文链接测试环境生产环境腾讯云容器服务官方网站安装请使用或升级到最新版本。注意版本的不同。与或集成请参考官方文档的配置。之后使用以下命令启动即可安装详情请参考使用与类似,项目中包含即可使用。本站介绍的使用方法请查看这里示例 原文链接:http://www.khs1994.com/ci/dro... 测试环境:macOS + Drone + Gogs + Docker Registry ...
阅读 2143·2023-04-26 00:38
阅读 1929·2021-09-07 10:17
阅读 887·2021-09-02 15:41
阅读 636·2021-08-30 09:45
阅读 540·2019-08-29 17:25
阅读 3203·2019-08-29 15:07
阅读 2181·2019-08-29 12:52
阅读 3733·2019-08-26 13:35