假设我当前的服务器ip为1.1.1.1,后面可以改成自己的云服务器ip,以下文档都是部署在同一服务器内,记得开放防火墙端口
安装容器
docker pull gitea/gitea
docker pull drone/drone:2
docker pull drone/drone-runner-docker:1
运行gitea容器
docker run -d --privileged=true --restart=always --name=gitea -p 7060:22 -p 7070:3000 -v /home/gitea:/data gitea/gitea:latest
访问http://1.1.1.1:7070,进行以下配置
1.数据库配置自行填写
2.一般配置,建议只修改站点名称,其他的不要修改
3.可选配置,点击管理员账号配置,配置管理员的账号
4.点击立即安装,在当前页面等待安装完成
运行drone容器
1.前提
创建Gitea oauth 客户端 ID和 Gitea oauth 客户端密钥
获取hex_value
在命令行中执行 openssl rand -hex 16,假设输出值为hex_value
openssl rand -hex 16
运行drone容器
参数说明
DRONE_GITEA_CLIENT_ID 是 Gitea oauth 客户端 ID
DRONE_GITEA_CLIENT_SECRET 是Gitea oauth 客户端密钥
DRONE_RPC_SECRET 是上文说的hex_value
docker run -v /home/drone:/data --env=DRONE_USER_CREATE=username:gitea管理员账号称,machine:false,admin:true,token:c3d55b20f048d1b3f86862ad156ffbeb580bac91 --env=DRONE_GITEA_SERVER=http://1.1.1.1:7070 --env=DRONE_GITEA_CLIENT_ID=Gitea oauth 客户端 ID --env=DRONE_GITEA_CLIENT_SECRET=Gitea oauth 客户端密钥 --env=DRONE_RPC_SECRET=hex_value --env=DRONE_SERVER_HOST=1.1.1.1:9010 --env=DRONE_SERVER_PROTO=http --publish=9010:80 --publish=9020:443 --restart=always --detach=true --name=drone drone/drone:2
运行drone-runner-docker容器
docker run -d -e DRONE_RPC_PROTO=http -e DRONE_RPC_HOST=1.1.1.1:9010 -v /var/run/docker.sock:/var/run/docker.sock -e DRONE_RPC_SECRET=hex_value -e DRONE_RUNNER_CAPACITY=2 -e DRONE_RUNNER_NAME=drone-runner -p 9040:3000 --restart=always --name=runner --link=drone:drone drone/drone-runner-docker:1
.drone.yml
kind: pipeline
type: docker
name: demo
trigger:
ref:
- refs/tags/**
steps:
- name: build
image: node:14.17.0
commands:
- npm i
- npm run build
- name: drone-scp
image: appleboy/drone-scp
settings:
host:
from_secret: host
username:
from_secret: username
password:
from_secret: password
port: 22
target: /custom_front
source:
- build
rm: true
- name: drone-ssh
image: appleboy/drone-ssh
settings:
host:
from_secret: host
username:
from_secret: username
password:
from_secret: password
port: 22
script:
docker restart nginx