https://docs.gitea.io/en-us/install-with-docker/ (gitea相关文档)
https://docs.drone.io/ (drone的官方文档)
目前是在我mac本机采用docker-compose方式实现的
1、首先安装docker等软件;
2、安装gitea和 drone,直接给出相关的docker-compose.yml文件:
version: "3.7" services: gitea: image: gitea/gitea:latest container_name: gitea ports: - "10022:22" - "13000:3000" environment: - APP_NAME="yjph83 Gitea Git with a cup of tea" - RUN_MODE=dev - HTTP_PORT=3000 - ROOT_URL="http://drone-gitea-server:13000" - LOCAL_ROOT_URL="http://drone-gitea-server:13000" - DB_TYPE=mysql - DB_HOST=db-server:3306 - DB_NAME=gitea - DB_USER=root - DB_PASSWD=password - TZ=Asia/Shanghai volumes: - /Volumes/data/develop/dockers/gitea/_data:/data:rw restart: always networks: - default extra_hosts: - db-server:10.9.37.87 - drone-gitea-server:10.9.37.87 drone-server: image: drone/drone:latest container_name: drone-server ports: - "8080:80" - "8443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock - /Volumes/data/develop/dockers/drone/_data:/data:rw restart: always environment: - DRONE_GITEA_SERVER=http://drone-gitea-server:13000 - DRONE_RUNNER_CAPACITY=2 - DRONE_SERVER_HOST=drone-server-api:8080 - DRONE_GITEA_CLIENT_ID=fcf59681-0d8e-4918-8bae-fe6e649d457c - DRONE_GITEA_CLIENT_SECRET=6mBkAkG7uE0Rs7dt_9rHZ9jkcWLktjbD5wkeUvoOUpI= - DRONE_USER_CREATE=username:yjph83,admin:true - DRONE_RPC_SECRET=9c3921e3e748aff725d2e16ef31fbc42 - DRONE_LOGS_DEBUG=true - TZ=Asia/Shanghai networks: - default extra_hosts: - drone-gitea-server:10.9.37.87 - drone-server-api:10.9.37.87 drone-runner: image: drone/drone-runner-docker container_name: drone-runner depends_on: - drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock restart: always environment: - DRONE_RPC_PROTO=http - DRONE_RPC_HOST=drone-server-api:8080 - DRONE_RPC_SECRET=9c3921e3e748aff725d2e16ef31fbc42 - DRONE_RUNNER_CAPACITY=2 - DRONE_RUNNER_NAME=drone-runner - DRONE_LOGS_DEBUG=true - TZ=Asia/Shanghai ports: - "23000:3000" networks: - default extra_hosts: - drone-server-api:10.9.37.87 - drone-gitea-server:10.9.37.87 networks: default:
注意:
- HTTP_PORT=3000 - ROOT_URL="http://drone-gitea-server:13000" - LOCAL_ROOT_URL="http://drone-gitea-server:13000"
如果:映射的外端口不是3000, 最好配置ROOT_URL 和 LOCAL_ROOT_URL两个属性;否则只能在app.in i中修改SSH_DOMAIN、DOMAIN、ROOT_URL属性配置并重启;
[server] APP_DATA_PATH = /data/gitea SSH_DOMAIN = drone-gitea-server HTTP_PORT = 3000 ROOT_URL = http://drone-gitea-server:13000/ DISABLE_SSH = false SSH_PORT = 22 SSH_LISTEN_PORT = 22 LFS_START_SERVER = true LFS_CONTENT_PATH = /data/git/lfs DOMAIN = drone-gitea-server LFS_JWT_SECRET = -gfnZXF4v0kBretZgNMp2XyZkV3i7CxmMnnswgFir_Q OFFLINE_MODE = false
gitea连接的需要mysql,我是单独的docker 启动方式;如果安装需要自己修改对应属性的值;
当这些启动好后则需要在gitea上注册,配置管理员用户, 同时在安装drone时,配置的
- DRONE_USER_CREATE=username:yjph83,admin:true
如果是gitea中存在的用户,则不用配置token,该处表示yjph83 是drone 的管理员,admin:true 就表示管理员角色;
以下的配置是先不用管, 当gitea中添加drone应用后自动生成后,再来修改配置,重启docker
- DRONE_GITEA_CLIENT_ID=fcf59681-0d8e-4918-8bae-fe6e649d457c - DRONE_GITEA_CLIENT_SECRET=6mBkAkG7uE0Rs7dt_9rHZ9jkcWLktjbD5wkeUvoOUpI=
gitea服务的注册、登录就自行百度了,
配置在gitea页面上配置drone的回调路径则必须和配置上一致:
http://drone-server-api:8080/login
与
- DRONE_SERVER_HOST=drone-server-api:8080
相对应
drone的配置在drone服务上登录后会自动跳转同步gitea上的项目后,激活drone 服务即可;
drone的demo如下:
global-variables: git-image: &git-image reg.xxxx.io/library/git repo-image: &repo-image reg.xxxx.io/xxh/pipeline-backend step-when: &step-when when: branch: [ master ] event: [ push ] #定义工作空间和路径 workspace: base: /goworkspace path: /goworkspace kind: pipeline name: default clone: # 指定克隆深度 depth: 50 # 禁用默认的clone行为 disable: true steps: # clone - name: clone-code image: *git-image commands: - git clone --branch ${DRONE_BRANCH} ${DRONE_GIT_HTTP_URL} # 编译构建 - name: build image: reg.xxxx.io/library/golangci-lint:v1.21.0 volumes: - name: cache path: /go/pkg/mod commands: - go env -w GOPROXY=https://goproxy.cn,direct - go env -w GOPRIVATE=code.xxxx.com - export GO111MODULE=on - cd ${DRONE_REPO_NAME} - go mod tidy - go build -o pipeline/main ./cmd/pipeline/main.go <<: *step-when # 打镜像 - name: dev-docker image: plugins/docker pull: never commands: - cd ${DRONE_REPO_NAME} settings: username: from_secret: docker_username password: from_secret: docker_password repo: *repo-image tags: - daily registry: reg.xxxx.io dockerfile: ./Dockerfile <<: *step-when # 定义主机的磁盘目录 volumes: - name: cache host: path: /tmp/cache
该过程是将默认的 git clone 提取出来自定义;
还可以不用自定义
workspace: base: /goworkspace kind: pipeline name: default steps: # 编译构建 - name: build image: reg.xxxx.io/library/golangci-lint:v1.21.0 volumes: - name: cache path: /go/pkg/mod commands: - go env -w GOPROXY=https://goproxy.io,direct - go env -w GOPRIVATE=drone-gitea-server - export GO111MODULE=on - go mod tidy - go build -o pipeline/main ./cmd/pipeline/main.go when: branch: - master event: - push # 打镜像 - name: dev-docker image: plugins/docker pull: never settings: username: from_secret: docker_username password: from_secret: docker_password repo: reg.xxxx.io/xxh/pipeline-backend tags: - daily registry: reg.xxxx.io dockerfile: ./Dockerfile when: branch: [ master ] event: [ push ] volumes: - name: cache host: path: /tmp/cache
相关推荐
基于Gitea+drone+argocd+harbor+kuberneter的全自动CI/CD, 网上大量拷贝粘贴,关于drone与argocd的割裂的文档,本文将几个工具真正的串联起来,实现代码提交后的自动化“一条龙服务”,不管docker hub 还是gitlab...
Ansible-gitea-drone.zip,Gitea 无人机 Traefik Docker合成 AnsibleGitea无人机(开发),ansible是一个简单而强大的自动化引擎。它用于帮助配置管理、应用程序部署和任务自动化。
该项目提供了Drone CI配置文件(.drone.yml)的通用基础,该配置文件应易于修改,适用于大多数项目。 如何使用 从页面下载发布档案 提取发行档案 从发布文件夹中,将以下文件安装到项目的根目录中 无人机CI配置文件...
Drone 是一个建立在 Docker 之上的 持续集成(Continuous integration)系统。官方支持下面的系统和版本: Ubuntu Precise 12.04 (LTS) (64-bit) Ubuntu Raring 13.04 (64 bit) Drone 的安装仅仅依赖最新版本的 ...
1. **Drone CI**:Drone CI是一个基于容器的持续集成和持续部署系统,它使用YAML配置文件(.drone.yml)来定义构建流程。其核心特点包括Docker容器化、支持多种代码仓库、易于集成以及强大的插件生态系统。在本项目...
deploy-drone:部署Drone CI以在产品上实现连续集成
Drone CI(Continuous Integration)是一个开源的持续集成和持续部署系统,由Golang编写,设计简洁且可扩展。它提供了一种简单的方法来自动化代码构建、测试和部署流程,使得开发者可以快速地验证代码更改并确保其...
2. **Drone CI**:Drone CI是一个CI/CD工具,它通过读取仓库中的`.drone.yml`配置文件来自动化构建、测试和部署过程。用户可以自定义这些脚本来适应项目的特定需求,包括设置触发器、环境变量、构建步骤等。 3. **...
标题 "drone-pr-merge:GitHub PR为Drone CI合并“事件”" 指的是一种自动化流程,它使用Drone CI(一个持续...用户可以参考这些内容来设置自己的Drone CI和GitHub自动化流程,以实现更高效、自动化的代码管理和协作。
本地环境:使用 gitea + drone 的 CI/CD环境 ; 在books文件夹里可以放多本数据,在书籍写好推送到gitea上时利用drone则行shell文件自动将构建书籍并会复制到指定站点位置
docker-compose 的drone启动文件脚本,直接在该文件目录下执行docker-compose up -d 就可以运行drone,注意先安装好gogs,并修改好配置文件中的IP地址和用户名密码。如果需要连接其他如github请参照drone官网教程...
Drone-ci是一款自动化持续集成(CI)和持续部署(CD)工具,它允许开发者在代码库上设置一系列自动化工作流程。`drone-tool-settings`是针对Drone-ci的一个辅助工具,专注于帮助用户更方便地管理和配置软件包管理器...
Drone CI系统的一个分支。 基于v0.8代码树 完全Apache 2.0,无层 .drone.yml 将管道放入存储库中名为.drone.yml的文件中 可以根据需要命名管道步骤 在命令部分运行任何命令 # .drone.yml pipeline : build : ...
drone-wall:我们在Juicymo使用的Drone CI仪表板(与Drone 0.7.0兼容)
git镜像 掌握 开发 关于 该图像用于将我们的存储库镜像到外部存储库。 使用范例 steps : - name : mirror image : osshelp/drone-git-mirror settings : ... from_secret : git-... Drone CI 推送更改时将使用的名
drone-line Sending line notifications using a binary, docker or . Register Line BOT API Trial Please refer to . Feature Send multiple Message. Send Text Message. Send Video Message. Send Audio ...
基于drone和openshift的持续集成.pdf
管道管道教程将引导您使用 , 和多个集群创建端到端部署管道。 本教程将演示如何在代表每个环境的GitHub存储库中使用Kubernetes清单文件的集合,在多个环境中传播Kubernetes部署,每个环境均由一个专用的Kubernetes...
无人驾驶飞机 Drone持续集成服务器的命令行客户端。 说明文件: 技术支援: 错误跟踪:
通过详细解读AR.Drone用户手册,我们不仅能够掌握无人机的基本操作,还能深入了解其背后的设计理念和安全考量。无论是初学者还是经验丰富的飞行员,都应该重视并实践这些指南,以确保每次飞行既安全又愉快。