当前位置:   article > 正文

docker-compose快速搭建gitea+drone自动部署-简单快速_docker-compose gitea

docker-compose gitea

docker-compose.yml文件完整内容放在最后,安装docker-compose

docker-compose up -d一键运行即可

Gitea

Gitea 是一个轻量级全功能的 DevSecOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。

在设置中添加 OAuth2 应用程序

点击应用,往下翻,其中应用名称自定义,http://172.30.12.123:3100/login为drone服务地址,点击创建应用

复制保存客户端ID客户端密钥,配置drone服务时会使用

配置说明 | Gitea Documentationicon-default.png?t=N7T8https://docs.gitea.cn/administration/config-cheat-sheet

提交代码没有drone没有自动部署查看日志发现:

webhook只能调用允许的HTTP服务器(请检查您的webhook.allowed_HOST_LIST设置)

./gitea/gitea/conf/目录下的app.ini文件添加一下内容:

  1. [webhook]
  2. ALLOWED_HOST_LIST = *

出于安全原因,Webhook 仅能调用允许的主机。以逗号分隔的列表

  • loopback:IPv4 的 127.0.0.0/8 和 IPv6 的 ::1/128,包括 localhost。

  • private:RFC 1918(10.0.0.0/8,172.16.0.0/12,192.168.0.0/16)和 RFC 4193(FC00::/7)。也称为 LAN/Intranet。

  • external:一个有效的非私有单播 IP,您可以访问公共互联网上的所有主机。

  • *:允许所有主机。

  1. #使用OpenSSL生成一个16字节(即128位)的随机十六进制字符串,如:5e606ad37742ffc34e0ee46asd881215
  2. openssl rand -hex 16

Drone

Drone by Harness™ 是一个现代化的持续集成平台,能让繁忙的团队利用强大的云原生管道引擎自动完成构建、测试和发布工作流。

drone文档:

Drone CI / CD | Droneicon-default.png?t=N7T8https://docs.drone.io/

报错:

linter: untrusted repositories cannot mount host volumes

解决:

完整docker-compose.yml文件内容:

记得修改为你适当的内容

  1. version: "3"
  2. services:
  3. drone:
  4. image: drone/drone:latest
  5. restart: always
  6. container_name: drone
  7. ports:
  8. - "3000:80" #端口映射
  9. #- "443:443"
  10. environment:
  11. - DRONE_GITEA_SERVER=http://172.30.12.123:3000 #gitea地址
  12. - DRONE_GITEA_CLIENT_ID=123123 #客户端ID
  13. - DRONE_GITEA_CLIENT_SECRET=321321 #客户端密钥
  14. - DRONE_RPC_SECRET=8899 #密钥,与runner中的相同
  15. - DRONE_SERVER_HOST=172.30.12.123:3100 #drone服务器地址
  16. #- DRONE_GIT_ALWAYS_AUTH=true #克隆公共仓库时进行身份验证。只有当你的源代码管理系统启用了私有模式时才需要这样做。
  17. - DRONE_SERVER_PROTO=http
  18. - DRONE_USER_CREATE=username:drone,admin:true #,token:5e606ad37742ffc34e0ee46b13881215 #为系统提供管理账户
  19. - DRONE_GIT_USERNAME=username
  20. - DRONE_GIT_PASSWORD=password #可选字符串值。覆盖用于验证和克隆私有仓库的默认 git 用户名和密码。
  21. - TZ=Asia/Shanghai
  22. volumes:
  23. - ./drone_data:/data
  24. runner:
  25. image: drone/drone-runner-docker:latest
  26. container_name: runner
  27. restart: always
  28. volumes:
  29. - /var/run/docker.sock:/var/run/docker.sock
  30. environment:
  31. - DRONE_RPC_PROTO=http #http 或 https
  32. - DRONE_RPC_HOST=drone #连接 Drone 服务器的主机名(和可选端口)
  33. - DRONE_RPC_SECRET=8899 #设置密钥
  34. - DRONE_RUNNER_CAPACITY=2 #限制运行程序可同时执行的管道数量
  35. - DRONE_RUNNER_NAME=runner
  36. - DRONE_TRACE=true #跟踪级别日志记录
  37. - DRONE_DEBUG=true #启用调试级日志记录
  38. - TZ=Asia/Shanghai
  39. ports:
  40. - "3030:3000"
  41. depends_on:
  42. - drone
  43. gitea:
  44. image: gitea/gitea:1.21
  45. container_name: gitea
  46. environment:
  47. - USER_UID=1000
  48. - USER_GID=1000
  49. - GITEA__database__DB_TYPE=mysql
  50. - GITEA__database__HOST=db:3306 #使用主机名为db的服务
  51. - GITEA__database__NAME=gitea
  52. - GITEA__database__USER=gitea
  53. - GITEA__database__PASSWD=gitea
  54. restart: always
  55. volumes:
  56. - ./gitea:/data
  57. - /etc/timezone:/etc/timezone:ro
  58. - /etc/localtime:/etc/localtime:ro
  59. ports:
  60. - "3000:3000"
  61. #- "222:22"
  62. db:
  63. image: mysql:8
  64. restart: always
  65. container_name: db-gitea
  66. environment:
  67. - MYSQL_ROOT_PASSWORD=gitea #数据库root用户密码
  68. - MYSQL_USER=gitea #用户名
  69. - MYSQL_PASSWORD=gitea #用户密码
  70. - MYSQL_DATABASE=gitea #数据库名
  71. volumes:
  72. - ./gitea-db:/var/lib/mysql #
  73. #未加端口映射,仅作为gitea的数据库

.drone.yml 参考

  1. kind: pipeline
  2. type: docker
  3. name: MyService
  4. steps:
  5. - name: build
  6. image: gradle:jdk11
  7. volumes:
  8. - name: service-root
  9. path: /app/build
  10. - name: gradle-cache
  11. path: /root/.gradle
  12. commands:
  13. - ./gradlew bootJar
  14. - cp /drone/src/app-api/build/libs/*.jar /app/build/my-service-latest.jar
  15. volumes:
  16. - name: service-root
  17. host:
  18. path: /root/service
  19. - name: gradle-cache
  20. host:
  21. path: /root/.gradle

参考博主:Drone + Gitea + Docker 实现JAVA项目自动化代码提交部署的一次实践案例(适合轻量化小型团队使用)_容器化自动部署 java代码提交git 自动部署-CSDN博客

代码厂库ip+端口访问 Gitea和Drone ,代码提交到gitea 自动构建打包部署

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/832527
推荐阅读
相关标签
  

闽ICP备14008679号