当前位置: 首页 > 工具软件 > Drone > 使用案例 >

drone 的环境搭建

凤伟泽
2023-12-01

目录

一、前言

二、安装

1. 安装docker

2.安装k8s

三、配置

1.配置minikube

2.启动k8s集群

四、minikube使用

五、使用drone

        1.安装drone server

        2.安装 drone runner 

6.编写.drone.yml


一、前言

Docker 桌面条款更新 : docker desktop在2022年要收费了,虽然对我没有影响,但是还是尝试有没有相应的替代品。

本文使用:minikube + docker + drone 

minikube是一个快捷搭建k8s的工具,可以快速搭起一个单机器的k8s集群

二、安装

1. 安装docker

        brew install docker  //注意 brew install --cask docker 这个安装的是docker Desktop

2.安装k8s

        brew install hyperkit   //OSX上运行的轻量级虚拟化工具

        brew install kubectl    //k8s命令行工具

        brew install minikube   

三、配置

1.配置minikube

        minikube config set cpus 3
        minikube config set memory 6g

2.启动k8s集群

        minikube start --kubernetes-version=v1.19.14 --driver=hyperkit --container-runtime=docker

        eval $(minikube docker-env)

四、minikube使用

        minikube dashboard // 可以看见k8s 的pod ,deployment,service。目前用不到

        minikube ssh //这个命令有用,进入虚拟机环境

五、使用drone

        先在github或gitee申请一个autos,用来获得仓库的权限。

        先minikube ssh进入虚拟机环境

        1.安装drone server

docker pull drone/drone:2
docker run \
  --volume=/var/lib/drone:/data \
  --env=DRONE_GITHUB_CLIENT_ID={oauth 的clientId} \
  --env=DRONE_GITHUB_CLIENT_SECRET={oauth 的secretId} \
  --env=DRONE_RPC_SECRET={随便 也可以生成一个openssl rand -hex 16}\
  --env=DRONE_SERVER_HOST={这填minikube ip的地址,这个地方如果不填外网ip或域名,在使用drone会有坑} \
  --env=DRONE_SERVER_PROTO=http \
  --publish=80:80 \
  --publish=443:443 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:2

        启动drone服务器 ,这个时候就可以本地输入minikube ip地址就可以看见drone了 

        2.安装 drone runner 

docker pull drone/drone-runner-docker:1
docker run --detach \
 --volume=/var/run/docker.sock:/var/run/docker.sock \
--env=DRONE_RPC_PROTO=http \
--env=DRONE_RPC_HOST={这个需和 drone server的写的一样 } \
--env=DRONE_RPC_SECRET={这个需和 drone server的写的一样} \
--env=DRONE_RUNNER_CAPACITY=2 \
--env=DRONE_RUNNER_NAME=my-first-runner \
 --publish=3000:3000 \
 --restart=always \
 --name=runner \
 drone/drone-runner-docker:1

6.编写.drone.yml

index.js

console.log("简单测试管线");

.drone.yml

kind: pipeline
type: docker
name: default
steps:
- name: test
  image: node
  commands:
  - node index.js

补充:

https://itnext.io/goodbye-docker-desktop-hello-minikube-3649f2a1c469

Replacing Docker Desktop with hyperkit + minikube - Cirrus Minor

 类似资料: