docker 搭建drone + gitee 的CI/CD

2023-12-26 05:30
文章标签 docker 搭建 gitee ci cd drone

本文主要是介绍docker 搭建drone + gitee 的CI/CD,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

准备

创建 OAuth 应用程序

创建一个 Gitee OAuth 应用程序。Consumer Key 和 Consumer Secret 用于授权访问 Gitee 资源。 

授权回调 URL 必须与以下格式和路径匹配,并且必须使用您的确切服务器方案和主机。

应用主页填写 http://111.111.121.189:8793

应用回调地址填写 http://111.111.121.189:8793/login

 

创建共享密钥

创建一个共享密钥来验证跑步者和您的中央无人机服务器之间的通信。

您可以使用 openssl 生成共享密钥:

$ openssl rand -hex 16
bea26a2221fd8090ea38720fc445eca6

下载

Drone 服务器作为轻量级 Docker 映像分发。镜像是自包含的,没有任何外部依赖。

$ docker pull drone/drone:2

配置

Drone 服务器使用环境变量进行配置。本文引用了配置选项的子集,定义如下。有关配置选项的完整列表,请参阅配置。

  • DRONE_GITEE_CLIENT_ID

    必需的字符串值提供您的 Gitee oauth 客户端 ID。

  • DRONE_GITEE_CLIENT_SECRET

    必需的字符串值提供您的 Gitee oauth 客户端密码。

  • DRONE_GITEE_SERVER

    可选的 url 值提供 Gitee 服务器地址。默认值为 gitee.com 服务器地址https://gitee.com

  • DRONE_GITEE_API_SERVER

    可选字符串值提供 Gitee api 服务器地址。默认值为https://gitee.com/api/v5

  • DRONE_RPC_SECRET

    必需的字符串值提供在上一步中生成的共享密钥。这用于验证服务器和运行器之间的 rpc 连接。必须为服务器和运行器提供相同的秘密值。

  • DRONE_SERVER_HOST

    必需的字符串值提供您的外部主机名或 IP 地址。如果使用 IP 地址,您可以包括端口。例如,drone.domain.com

  • DRONE_SERVER_PROTO

    必需的字符串值提供您的外部协议方案。该值应设置为httphttps。如果您配置 ssl 或 acme,此字段默认为 https。

启动服务器

可以使用以下命令启动服务器容器。容器是通过环境变量配置的。请记住将下面的占位符值替换为适当的值。

 docker run --volume=/var/lib/drone:/data  --env=DRONE_GITEE_CLIENT_ID=DRONE_GITEE_CLIENT_ID --env=DRONE_GITEE_CLIENT_SECRET=DRONE_GITEE_CLIENT_SECRET --env=DRONE_RPC_SECRET=DRONE_RPC_SECRET  --env=DRONE_USER_CREATE=username:yourUsername,admin:true  --env=DRONE_SERVER_HOST=111.111.121.189:8793 --env=DRONE_SERVER_PROTO=http --publish=8793:80 --publish=443:443 --restart=always --detach=true  --name=drone drone/drone:2

yourUsername 可以通过

curl -i http://111.111.121.189:8793/api/user \

>-H "Authorization: Bearer 738899333"

相似命令查看  然后替换 yourUsername  其实也是码云的用户名 

安装  docker drone runner 

在 Linux 上安装

本文介绍如何在 Linux 上安装 Docker 运行器。Docker runner 打包为一个最小的 Docker 镜像,分布在DockerHub上,可用于以下架构:

  • amd64
  • 手臂
  • arm64

下载

安装 Docker 并拉取公共镜像:

$ docker pull drone/drone-runner-docker:1

配置

Docker 运行器是使用环境变量配置的。本文引用了以下配置选项。有关配置选项的完整列表,请参阅配置。

  • DRONE_RPC_HOST

    提供 Drone 服务器的主机名(和可选端口)。运行程序连接到主机地址的服务器以接收管道以执行。

  • DRONE_RPC_PROTO

    提供用于连接 Drone 服务器的协议。该值必须是 http 或 https。

  • DRONE_RPC_SECRET

    提供用于向 Drone 服务器进行身份验证的共享密钥。这必须与您的 Drone 服务器配置中定义的密钥匹配。

安装

下面的命令创建一个容器并启动 Docker 运行器。请记住将下面的环境变量替换为您的 Drone 服务器详细信息。

docker run --detach --volume=/var/run/docker.sock:/var/run/docker.sock --env=DRONE_RPC_PROTO=http --env=DRONE_RPC_HOST=111.111.121.189:8793 --env=DRONE_RPC_SECRET=DRONE_RPC_SECRET --env=DRONE_RUNNER_CAPACITY=2  --env=DRONE_RUNNER_NAME=my-first-runner --publish=8793:3000 --restart=always --name=runner drone/drone-runner-docker:1

确认

使用docker logs命令查看日志并验证 runner 是否成功与 Drone 服务器建立连接。

$ docker logs runnerINFO[0000] starting the server
INFO[0000] successfully pinged the remote server

开始使用 

先进到111.111.121.189:8793 /页面 点击按钮 跳转到码云进行授权

 同步项目 

点击项目进入到 

点击setting/Activate Repository 进入 

 如上图配置 

点击Save Changes 

然后在项目根目录添加.drone.yml文件配置

kind: pipeline
type: docker
name: buildsteps:- name: buildimage: node:12-alpinevolumes:- name: node-cachepath: /datacommands:- npm install --registry=https://registry.npm.taobao.org- npm run build- cp -r ./main_master/ /data
volumes:- name: node-cachehost:path: /mnt/nginx/html
trigger:branch:- masterevent:- push

./main_master/ 是打包后的文件夹名称  

/mnt/nginx/html  是需要放到的宿主环境的目录 我这里是nginx的 html文件夹 的宿主环境目录

 drone + docker  部署 express 

.drone.yml 的配置

kind: pipeline
type: docker
name: buildsteps:- name: dockerimage: dockervolumes:- name: dockersockpath: /var/run/docker.sockcommands:- docker build -t tangxl/wx .- docker stop tangxlwx- docker rm tangxlwx- docker run -itd -p 8001:8001 --name tangxlwx tangxl/wx
volumes:- name: dockersockhost:path: /var/run/docker.sock
trigger:branch:- masterevent:- push

Dockerfile 的配置

FROM node:12-alpineRUN mkdir -p  /tangxlWx
WORKDIR /tangxlWx
COPY package.json /tangxlWx/package.json
RUN npm i  --registry=https://registry.npm.taobao.orgCOPY . /tangxlWx/ENV DOCKER=true
EXPOSE 8001
CMD npm start

这篇关于docker 搭建drone + gitee 的CI/CD的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/538264

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.