
最近优化了一下Drone构建Laravel流程,通过加入缓存,避免每次构建都composer扩展包,从而提高构建速度,下面跟大家分享构建配置。
01
#设置挂载volumes:#Go编译缓存- name: cachehost:path: home/data/drone/cache/program-manage#Docker环境- name: dockerhost:path: var/run/docker.sock#Docker配置- name: docker-daemonhost:path: etc/docker/daemon.json
02
每次构建前,我们可以通过提前加载缓存,达到不用重复composer包
#加载缓存- name: cacheimage: drillster/drone-volume-cachevolumes:- name: cachepath: cachesettings:restore: truemount:- ./vendor
03
为了保持缓存新鲜度,我们每次构建完,都重新构建缓存,达到扩展包是最新的
#构建缓存- name: rebuildimage: drillster/drone-volume-cachevolumes:- name: cachepath: /cachesettings:rebuild: truemount:- ./vendor
04
下面是完整的配置,我们需要提前在宿主服务器创建目录
/home/data/drone/cache/program-manage
用于存放每次构建缓存。
kind: pipelinetype: dockername: program-manage#设置挂载volumes:#Go编译缓存- name: cachehost:path: /home/data/drone/cache/program-manage#Docker环境- name: dockerhost:path: /var/run/docker.sock#Docker配置- name: docker-daemonhost:path: /etc/docker/daemon.json#构建步骤steps:#设置缓存- name: cleanimage: docker:19.03.1pull: if-not-existsnetwork_mode: host# 将宿主机的 docker和配置挂载到运行的 docker 容器中,那么在容器中运行 docker 命令时,等同于在宿主机中运行该docker 命令volumes:- name: dockerpath: /var/run/docker.sock- name: imagespath: /images- name: docker-daemonpath: /etc/docker/daemon.json#加载缓存- name: cacheimage: drillster/drone-volume-cachevolumes:- name: cachepath: /cachesettings:restore: truemount:- ./vendor#安装composer扩展- name: backendpull: if-not-existsimage: hongzhuangxian/php7.3-diycommands:- composer install --prefer-dist#推送镜像至镜像仓库- name: publishimage: plugins/dockerpull: if-not-existsmirrors: #镜像仓库加速地址,不需要加速,可以直接删除from_secret: registry_mirrorssettings:purge: falseregistry: #镜像仓库域名from_secret: registryrepo: #镜像仓库详细地址from_secret: repouse_cache: truetags:- latestusername: #镜像仓库账户from_secret: registry_user_namepassword: #镜像仓库密码from_secret: registry_passwordvolumes:- name: dockerpath: /var/run/docker.sock- name: cachepath: /cache#构建缓存- name: rebuildimage: drillster/drone-volume-cachevolumes:- name: cachepath: /cachesettings:rebuild: truemount:- ./vendor#部署服务- name: ssh commandspull: if-not-existsimage: appleboy/drone-sshsettings:host:from_secret: ssh_ipport: 22username:from_secret: ssh_user_namepassword:from_secret: ssh_passwordscript:- cd /home/php/programManage- docker-compose pull && docker-compose up --force-recreate -d#规定master分支,触发构建branches: master
文章转载自程序员技术笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。





