Drone CI 中文文档

Certificates 证书

Drone 通过在 Drone Server 容器中安装证书来支持本地 SSL 配置。如果你的 Drone Server 是公开的,你应该考虑使用 Let’s Encrypt。

  1. 将你的证书和密钥装入 Drone Server 容器:

    1
    2
    3
    
    $ docker run \
    -v /etc/certs/drone.company.com/server.crt:/etc/certs/drone.company.com/server.crt \
    -v /etc/certs/drone.company.com/server.key:/etc/certs/drone.company.com/server.key
    
  2. 配置你的证书和密钥的路径:

    1
    2
    3
    
    $ docker run \
    -e DRONE_TLS_CERT=/etc/certs/drone.company.com/server.crt \
    -e DRONE_TLS_KEY=/etc/certs/drone.company.com/server.key
    
  3. 暴露标准的 http 和 https 端口:

    1
    2
    3
    
    $ docker run \
    -p 80:80 \
    -p 443:443
    

Let’s Encrypt

Drone 支持使用 Let’s Encrypt 自动配置和更新 SSL。你可以通过以下标志启用 Let’s encrypt。

  1. 用以下参数启用 Lets Encrypt。

    1
    
    DRONE_TLS_AUTOCERT=true
    
  2. 确保配置了所需的主机名。

    1
    2
    
    DRONE_SERVER_HOST=domain.com
    DRONE_SERVER_PROTO=https
    
  3. 暴露标准的 http 和 https 端口:

    1
    2
    3
    
    docker run \
    -p 80:80 \
    -p 443:443
    
  4. 将证书缓存加载到主机上:

    1
    2
    
    docker run \
    -v /var/lib/drone:/data
    

证书缓存

Drone 将生成的证书缓存在磁盘的 /data/golang-autocert 中。这可以防止系统在重启时重新申请证书。最好的做法是把 /data 目录绑定到主机上。

证书升级

Drone 使用官方 Go acme 库来处理证书升级。应该不需要额外的配置或管理。