docker+gitea+drone搭建CI/CD
docker-compose安装:
https://www.runoob.com/docker/docker-compose.html
docker-compose 安装gitea,默认数据库SQLite3:
docker-compose.yml
version: "2" networks: gitea: external: false services: server: image: gitea/gitea:1.14.2 environment: - USER_UID=1000 - USER_GID=1000 restart: always networks: - gitea privileged: true volumes: - /var/docker/gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3006:3000" - "222:22"
安装官网的文件copy,总是失败,
一番折腾后,发现添加代码:
privileged: true 即可解决上面的权限问题
执行 docker-compose up -d
访问:http:serverIp:3006出现如下界面
如果初始化参数配置错了,后面可以修改:vi /var/docker/gitea/gitea/conf/app.ini 打开配置文件
docker-compose 安装Drone:
docker-compose.yml:
version: '3' networks: gitea: external: false services: # 容器名称 drone-server: container_name: drone # 构建所使用的镜像 image: drone/drone # 映射容器内80端口到宿主机的3008端口 ports: - 3008:80 # 映射容器内/data目录到宿主机的目录 volumes: - /data/apps/drone:/data # 容器随docker自动启动 restart: always privileged: true networks: - gitea environment: # Gitea 服务器地址 - DRONE_GITEA_SERVER=http://10.0.0.213:3006 # Gitea OAuth2客户端ID - DRONE_GITEA_CLIENT_ID=4c5fa377-28e1-4ce6-8241-ddeaf5920961 # Gitea OAuth2客户端密钥 - DRONE_GITEA_CLIENT_SECRET=CzR0Wpsdv8sur5nLCSFrQ7kTSbwnGGxi2w3sBH0Z3z0= # drone的共享密钥 - DRONE_RPC_SECRET=vmcroWdG1MwU2VJ5NRPh # drone的主机名 - DRONE_SERVER_HOST=10.0.0.213:3008 # 外部协议方案 - DRONE_SERVER_PROTO=http # 创建管理员账户,这里对应为gitea的用户名 - DRONE_USER_CREATE=username:yaojl,admin:true docker-runner: container_name: drone-runner image: drone/drone-runner-docker ports: - 3009:3000 restart: always privileged: true networks: - gitea depends_on: - drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: # 用于连接到Drone服务器的协议。该值必须是http或https。 - DRONE_RPC_PROTO=http # 用于连接到Drone服务器的主机名 - DRONE_RPC_HOST=drone:80 # Drone服务器进行身份验证的共享密钥,和上面设置一样 - DRONE_RPC_SECRET=vmcroWdG1MwU2VJ5NRPh # 限制运行程序可以执行的并发管道数。运行程序默认情况下执行2个并发管道。 - DRONE_RUNNER_CAPACITY=2 # docker runner 名称 - DRONE_RUNNER_NAME=docker-runner
yml的密钥:
同样添加 :privileged: true 即可解决上面的权限问题
执行 docker-compose up -d
访问 http://serviceIp:3008/,进入下图: