Tips 1 - Docker Image加速
在使用Drone CI的过程中,我们碰到两个问题是在大陆地区独有的。
一个是使用公共Docker Registry时,因为众所周知的原因,pull的速度会特别慢。如果你部署Drone的服务器并没有自带牛逼光环,整个构建流程会变得冗长并且失败。
经过@Jack 同学不懈的努力和探索,我们找到了方案:
pipeline:
publish:
image: plugins/docker
repo: octocat/hello-world
mirror: http://{daocloud id here}.m.daocloud.io
区别于我们现在使用的Harbor相关字段,mirror字段是用来设置在pull公共image时所使用的镜像,就这一点来讲,我们至少节省了跨越太平洋的时间。
还有一点,我们仍然推荐大家尽量使用node:alpine而不是直接使用node:latest,这样会大量节省我们的硬盘空间和构建时间,时间就是绳命呀!
Tips 2 - NPM安装加速
Pull Image慢的镜像问题,npm i慢。
这个的方案与Docker Image如出一辙,在执行npm i时指定npm registry仓库就可以了:
FROM node:alpine
WORKDIR /app
COPY package.json .
RUN npm i --registry https://registry.npm.taobao.org
COPY . .
CMD [ "node", "bin/www" ]
同样的,我们不推荐在执行服务器构建时使用Yarn。因为首先你要确保服务器环境中存在你预定的Yarn和对应的版本。
如果需要使用,yarn也可以指定registry:
yarn config set registry your-registry.com
有关Drone CI的使用,请参阅文档:http://docs.drone.io/pipelines/
SNOW团队 - 敬上