https://gitea.io/en-us/
一、Gitea创建OAuth2应用程序git仓库地址:3000/
进入Gitea-->点击右上角头像-->设置-->应用-->管理OAuth2应用程序
来创建一个OAuth2应用程序
这里的重定向URL是授权成功后跳转到drone的地址,根据自己的drone地址来创建
创建成功后就可以拿到客户端ID和客户端密钥了,这里可以先记录下来,我们后边会用到,因为一旦离开这个页面就没法再查看密钥了,只能重新生成
二、编写docker-compose.yml文件这里我们通过使用 Docker Compose 来构建并启动 Drone和 Docker Runner,编写 docker-compose.yml 文件
mkdir /home/docker/drone cd /home/docker/drone vim docker-compose.yml在配置文件中,我们设置 docker-compose.yml 的格式为 3 号版本,定义以下两个docker服务。
Drone Server:使用drone/drone:1版本镜像,将 drone 容器的 80 端口映射到宿主机的 8082端口。映射容器内 /data 目录到宿主机的 /data/drone 目录,以便 drone 可以保留数据。配置服务自动重新启动,并配置构建 drone 所需的环境变量。
Docker Runner:使用drone/drone-runner-docker:1版本镜像,将 docker 启动句柄挂载到容器/var/run/docker.sock文件中,以便 drone 可以使用 docker-runner 来执行镜像构建任务。环境变量中需要配置 drone server 的端口协议以及共享密钥,以便与 server 进行通信。
具体配置可参考如下配置:
version: '3' services: # 容器名称 fan-drone-server: # 构建所使用的镜像 image: drone/drone:1 # 映射容器内80端口到宿主机的7079端口 ports: - 8082:80 # 映射容器内/data目录到宿主机的/data/drone目录 volumes: - /data/drone:/data # 容器随docker自动启动 restart: always environment: # Gitea 服务器地址 - DRONE_GITEA_SERVER=http://49.235.6.235:3000 # Gitea OAuth2客户端ID - DRONE_GITEA_CLIENT_ID=afa9c9e9-802d-4ce3-a1e6-4d81d98bf3ad # Gitea OAuth2客户端密钥 - DRONE_GITEA_CLIENT_SECRET=OglyfNgftu6t7RZjZl1tTz764VGKzyDmc98IAdWlnet6 # drone的共享密钥 - DRONE_RPC_SECRET=asdfsadfasdfsadfsadfasdf # drone的主机名 - DRONE_SERVER_HOST=192.168.31.254:8082 # 外部协议方案 - DRONE_SERVER_PROTO=http # 创建管理员账户,这里对应为gitea的用户名 - DRONE_USER_CREATE=username:zhangwei,admin:true fan-docker-runner: image: drone/drone-runner-docker:1 ports: - 7080:3000 restart: always depends_on: - fan-drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: # 用于连接到Drone服务器的协议。该值必须是http或https。 - DRONE_RPC_PROTO=http # 用于连接到Drone服务器的主机名 - DRONE_RPC_HOST=192.168.31.254:8082 # Drone服务器进行身份验证的共享密钥,和上面设置一样 - DRONE_RPC_SECRET=asdfsadfasdfsadfsadfasdf # 限制运行程序可以执行的并发管道数。运行程序默认情况下执行2个并发管道。 - DRONE_RUNNER_CAPACITY=2 # docker runner 名称 - DRONE_RUNNER_NAME=fan-docker-runner-1红色方框内容根据实际情况修改
构建drone和runner
docker-compose up -d-d 为后台运行
三、配置drone打开drone :8082
到这里如果没有出问题的话drone就构建完成了,我们在浏览器输入配置的drone地址,可看到自动跳转到gitea的授权页面
这里我们进行授权后就跳转到drone的页面了,只需授权一次即可,往后我们登录了gitea就直接进入drone了
进入drone会看到未激活的仓库,我们点击激活它
进入git仓库
我们会看到仓库已经自动配置好了web钩子
检测链接是否正常
可以进去测试钩子,一般是没问题的
到这里我们的drone就安装完毕了,激活仓库后,我们向仓库推送一个commit,gitea就会发送消息通知drone去干活啦~
四、配置Drone自动构建drone的安装过程还是很简单的,下面我们来进行drone构建的配置
drone支持不同环境的不同管道配置,这里我使用Docker Pipelines管道配置
简单来说就是drone的每一步操作都在一个临时的drone的容器中进行,容器操作完会自动销毁,容器之间会共享当前的工作目录
本地部署主要步骤:
drone拉取最新的代码到当前工作目录
drone创建maven/grade容器,通过指定的构建工具maven/grade等将代码编译/打包为jar包,然后将jar包和
drone创建ssh容器,在容器中通过ssh连接到宿主机,通过定义好的命令,到jar和Dockerfile目录中将jar包制作构建为镜像,然后通过镜像创建应用容器并运行,期间会删除之前老的应用程序容器和镜像
在仓库的根目录下创建.drone.yml配置文件
drone中存储密码的方式