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团队 - 敬上