docker 搭建drone + gitee 的CI/CD

docker 搭建drone + gitee 的CI/CD准备创建OAuth应用程序创建一个GiteeOAuth应用程序。ConsumerKey和ConsumerSecret用于授权访问Gitee资源。授权回调URL必须与以下格式和路径匹配,并且必须使用您的确切服务器方案和主机。创建共享密钥创建一个共享密钥来验证跑步者和您的中央无人机服务器之间的通信。您可以使用openssl生成共享密钥:$opensslrand-hex16bea26a2221fd8090ea38720fc445ec.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

准备

创建 OAuth 应用程序

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

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

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

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

docker 搭建drone + gitee 的CI/CD

 

创建共享密钥

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

您可以使用 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 runner INFO[0000] starting the server INFO[0000] successfully pinged the remote server

开始使用 

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

docker 搭建drone + gitee 的CI/CD

 同步项目 

点击项目进入到 

docker 搭建drone + gitee 的CI/CD

点击setting/Activate Repository 进入 

docker 搭建drone + gitee 的CI/CD

 如上图配置 

点击Save Changes 

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

kind: pipeline
type: docker
name: build

steps:
  - name: build
    image: node:12-alpine
    volumes:
      - name: node-cache
        path: /data
    commands:
      - npm install --registry=https://registry.npm.taobao.org
      - npm run build
      - cp -r ./main_master/ /data
volumes:
  - name: node-cache
    host:
        path: /mnt/nginx/html
trigger:
    branch:
        - master
    event:
        - push

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

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

 drone + docker  部署 express 

.drone.yml 的配置

kind: pipeline
type: docker
name: build

steps:
  - name: docker
    image: docker
    volumes:
      - name: dockersock
        path: /var/run/docker.sock
    commands:
      - docker build -t tangxl/wx .
      - docker stop tangxlwx
      - docker rm tangxlwx
      - docker run -itd -p 8001:8001 --name tangxlwx tangxl/wx
volumes:
  - name: dockersock
    host:
        path: /var/run/docker.sock
trigger:
    branch:
        - master
    event:
        - push

Dockerfile 的配置

FROM node:12-alpine

RUN mkdir -p  /tangxlWx
WORKDIR /tangxlWx
COPY package.json /tangxlWx/package.json
RUN npm i  --registry=https://registry.npm.taobao.org

COPY . /tangxlWx/

ENV DOCKER=true
EXPOSE 8001
CMD npm start

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170574.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月15日 上午8:00
下一篇 2022年8月15日 上午8:00


相关推荐

  • 使用阿里云管理Docker镜像

    使用阿里云管理Docker镜像因为网络原因 在国内向 DockerHub 进行推送 拉取镜像等操作耗时会比较长 尤其是上传 export 导出的容器镜像 还有可能因为网络波动导致推送失败 因此需要使用国内的镜像托管服务

    2026年3月17日
    2
  • docker 修改容器时间_docker修改容器配置

    docker 修改容器时间_docker修改容器配置前言用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间查看时间查看系统时间date-R进入docker容器内部,查看容器时间dockere

    2022年7月30日
    10
  • Docker导出镜像为压缩包,并在另一台机器导入压缩包为镜像,即Docker镜像得导入导出

    Docker导出镜像为压缩包,并在另一台机器导入压缩包为镜像,即Docker镜像得导入导出引言当我们在测试环境 本文特指 docker 容器 部署好自己得服务得时候 想在生产环境上部署我们得服务 又害怕环境不一样导致服务不能运行 那么这个时候就可以把我们得容器导出为镜像 然后再把镜像导出为压缩包 接下来把压缩包复制到我们的生产环境 然后在生产环境把压缩包导入为镜像 最后使用此镜像开一个容器 然后在容器内打开我们的服务 那么我们的服务就可以正常运行啦 环境简介系统环境 ubuntu18 04 如果要在新的服务器使用我们的镜像 那么需要新的服务器和你测试环境的服务器的底层系统一致 即如果你测试环

    2026年3月18日
    2
  • docker(2)CentOS 7安装docker环境[通俗易懂]

    docker(2)CentOS 7安装docker环境[通俗易懂]前言前面一篇学了mac安装docker,这篇来学习在linux上安装docker环境准备Docker支持以下的CentOS版本,目前,CentOS仅发行版本中的内核支持Docker。Doc

    2022年7月29日
    11
  • centos7.4安装docker_centos安装python3.6

    centos7.4安装docker_centos安装python3.6前言当我们在一台电脑上搭建了python3.6的环境,下次换台电脑,又得重新搭建一次,设置环境变量等操作。好不容易安装好,一会提示pip不是内部或外部命令,一会又提示pip:commandno

    2022年7月28日
    14
  • Jenkins+Docker持续集成

    Jenkins+Docker持续集成本节内容 Jenkins 介绍 安装部署 Jenkins Jenkins 构建 maven 风格的 job Jenkins 邮件通知设置 Sonar Jenkins 与 Docker 结合一 Jenkins 介绍 Jenkins 是一个开源软件项目 是基于 Java 开发的一种持续集成工具 用于监控持续重复的工作 旨在提供一个开放易用的软件平台 使软件的持续集成变成可能 二 安装部署 Jen

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号