自建Git服务Gogs和CI/CD服务Drone
自建Git服务Gogs和CI/CD服务Drone
Gogs运行
docker run -d --name=gogs -p 10022:22 -p 10088:3000 -v /storage/app/gogs:/data gogs/gogs
挂载在/storage/app/gogs
配置文件:
APP_NAME = 内部协作开发仓库
RUN_USER = git
RUN_MODE = prod
[database]
DB_TYPE = mysql
HOST = 192.:13306
NAME = gogs
USER = root
PASSWD =
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /data/git/gogs-repositories
ENABLE_LOCAL_PATH_MIGRATION = true
FORCE_PRIVATE = false
DISABLE_HTTP_GIT = false
[server]
DOMAIN = 192.
HTTP_PORT = 3000
ROOT_URL = http://192.:10088/
DISABLE_SSH = false
SSH_PORT = 10022
START_SSH_SERVER = false
OFFLINE_MODE = false
[mailer]
ENABLED = true
HOST= smtp.exmail.qq.com:465
USER=
PASSWD=
FROM=`xx <xx@xxx.com>`
SUBJECT_PREFIX=`[xxx提醒你]`
[service]
REGISTER_EMAIL_CONFIRM = true
ENABLE_NOTIFY_MAIL = true
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = true
[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = true
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
ROOT_PATH = /data/logs
[security]
INSTALL_LOCK = true
SECRET_KEY = Tgjni2mMDkKqB88
Gogs备份容灾
需要定时备份数据库:
# gogs_backup.sh
mysqldump -uroot -pxxx -h192. -P13306 gogs > /backup/sql/mygogs_`date +%Y%m%d_%H%M%S`.sql
#删除一周之前的备份文件
find /backup/sql/mygogs* -type f -mtime +7 -exec rm -f {} \;
定时器:
#每天凌晨5点备份
0 5 * * * /bin/bash -x /backup/gogs_backup.sh > /dev/null 2>&1
和同步/storage/app/gogs文件夹:
# gogs_backup2.sh
nohup rsync -e 'ssh -p 22' -avL --delete --exclude "logs" --exclude "ssh" --exclude "gogs/data/sessions" --exclude "gogs/git/.ssh" superpika@192.168.0.101:/storage/app/gogs /backup/data >> /backup/data/rsync.log 2>&1 &
定时器:
# 每30分一次同步
30 * * * * /bin/bash -x /backup/gogs_backup2.sh > /dev/null 2>&1
需要添加:
vim ~/.ssh/authorized_keys
搭建Drone
编辑以下 docker-compose.yaml, 只需更改http://192.:10088:
version: '2'
services:
# 服务器主端
drone-server:
container_name: "mydrone-server"
image: drone/drone:latest
# 端口开放8080
ports:
- 8080:8000
- 9000
volumes:
- /var/lib/drone:/var/lib/drone/
restart: always
environment:
- DRONE_OPEN=true
- DRONE_HOST=http://127.0.0.1
# Gogs必备
- DRONE_GOGS=true
- DRONE_GOGS_URL=http://192.:10088
- DRONE_SECRET=xxxigogo
# 从端
drone-agent:
container_name: "mydrone-agent"
image: drone/agent:latest
command: agent
restart: always
depends_on:
- drone-server
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DRONE_SERVER=drone-server:9000
- DRONE_SECRET=xxxigogo
启动:
docker-compose up -d
我们开放了8080端口, 打开127.0.0.1:8080登录使用gogs帐号!
Drone实践
我们先登录Gogs:http://192.:10088, 建立一个仓库testmydrone.
先提交:
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin ssh://git@192.:10022/xxxx/testmydrone.git
git push -u origin master
然后登录http://127.0.0.1:8080勾选项目!

勾选完之后, 我们在我们的仓库新建一个文件.drone.yml
pipeline:
backend:
image: golang
commands:
- go build
还有一个源码main.go:
package main
func main(){
}
提交:
git add --all
git commit -m "push"
git push

自建Git服务Gogs和CI/CD服务Drone的更多相关文章
- 微服务架构下 CI/CD 如何落地
本文系云原生应用最佳实践杭州站活动演讲稿整理.杭州站活动邀请了 Apache APISIX 项目 VP 温铭.又拍云平台开发部高级工程师莫红波.蚂蚁金服技术专家王发康.有赞中间件开发工程师张超,分享云 ...
- drone 0.8.8 集成gogs 进行ci/cd 处理
drone 是一个不错的基于容器的ci/cd 工具,运行简单,同时插件也挺多,基本常见的轻量级的任务都是可以搞定的 环境准备 使用docker in docker docker-compose 文件 ...
- Salesforce学习之路(四)利用Jenkins和Git实现Salesforce的CI/CD功能
上文提到,基于CRM的二次开发是必不可少的,但是在实际项目中CI/CD是不可忽略的一个重要部分,与传统的Java,Python项目不同,如果对Salesforce进行持续集成和持续部署呢? 结合找到的 ...
- 使用CI/CD工具Github Action发布jar到Maven中央仓库
之前发布开源项目Payment Spring Boot到Maven中央仓库我都是手动执行mvn deploy,在CI/CD大行其道的今天使用这种方式有点"原始".于是我一直在寻求一 ...
- DevOps - CI&CD
1 - CI与CD的联系与区别 持续集成(Continuous Integration).持续交付(Continuous Delivery)和持续部署(Continuous Deployment)的过 ...
- 近期关于CI/CD策略以及git分支模型的思考
近两个月由于个人处于新环境.新项目的适应阶段,没怎么提笔写些文章.中间有好几个想法想记录下来分享,但受限于没有很好的时间段供自己总结思考(也可以总结为间歇性懒癌和剧癌发作),便啥也没有更新.借这个周末 ...
- 容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
什么是CI/CD 持续集成(Continous Intergration,CI)是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每 ...
- 唱吧DevOps的落地,微服务CI/CD的范本技术解读----最大的难点并不是实际业务代码的编写,而是服务的监控和调试以及容器的编排
1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...
- 唱吧DevOps的落地,微服务CI/CD的范本技术解读
1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...
随机推荐
- 洛谷P2432 zxbsmk爱查错
题目 DP,需要注意边界上的问题. 状态定义\(dp[i]\)为句子第i位去除字母的最小值,答案就是\(dp[len]\). 易得状态转移方程为: \[dp[i]=min(dp[i-1]+1,dp[l ...
- Android入门教程(一)
Android是什么? Android是基于Linux开发性内核的操作系统,该平台由操作系统,中间件,用户界面和应用软件组成.Android的基本信息:软件类型,APK,发行商:Google,最早版本 ...
- Coffee Break
题目链接:Coffee Break Gym-101911A 题目大意:有一位员工想要利用喝咖啡来休息,他给了一个数组表示他想要喝咖啡的时间点(假设他喝咖啡用时1分钟),老板规定每次喝咖啡的时间间隔必 ...
- 使用JS计算前一天和后一天
使用JS实现前一天和后一天 首先,我们先在html中写两个按钮来进行简单操作 <button onclick="Before()">前一天</button> ...
- Shell脚本实现对文件编辑
常见Linux文件的编辑命令 vi/vim,有时候我们想写一个脚本实现对文件编辑,这个时候,可能就不够用了,下面介绍一些办法 1.echo命令 Shell的echo命令常用于字符串的输出 例如: [r ...
- Java 强,弱,软,虚 引用
import java.lang.ref.SoftReference; import java.lang.ref.WeakReference; public class TestGC { /** * ...
- 解决:E: Could not get lock /var/lib/dpkg/lock
问题: ubuntu16 执行 sudo apt install aria2 命令时,提示如下错误 E: Could not get lock /var/lib/dpkg/lock - open (1 ...
- Centos 安装 zookeeper
下载 下载地址:http://archive.apache.org/dist/zookeeper/ [root@localhost bin]# wget http://archive.apache.o ...
- Redis自定义fastJson Serializer
public class FastJsonRedisSerializer<T> implements RedisSerializer<T> { public static fi ...
- 003-maven开发Java脚手架archrtype-技术点说明
一.概述 二.技术点说明 2.1.项目结构 凡auto包或文件件,均会被代码生成器再次生成二修改 1.model层 po:BasePO基础类,统一了数据库的基础字段[数据库必须添加如下,与mybati ...