Drone 持续构建如何下载私有依赖库?

by kingzcheung on May 4, 2019

一般的项目依赖管理工具都支持从私有仓库里下载私有依赖,比如composer或者npm之类的。而这些工具下载连接私有仓库更多是使用ssh key 来连接。在drone 系统中,会存在这样一个问题,我们应该如何添加私钥到镜像里呢?因为drone 使用docker 镜像作为构建容器,所以最后的问题是如何把ssh key 添加到docker 镜像中

有一个简单粗暴的方法是直接在dockerfile中直接把密钥打入镜像,但是这个做法有一个大问题就是密钥是会被别人看到的。

另一个方法是我们可以利用 docker的env功能传入,而drone 也提供了docker的env 传入方式。我们可以在drone 后台settings中添加一个私钥,然后在.drone.yml 添加类似以下的代码:

steps:
  - name: composer update
    image: composer:latest
    environment:
      SSH_KEY:
        from_secret: ssh_key
    commands:
      - echo -n "$SSH_KEY" > /root/.ssh/id_rsa
      - touch /root/.ssh/known_hosts
      - chmod -R 600 /root/.ssh