Drone 实验性支持 Bitbucket Server,之前又被称为 Atlassian Stash。使用下面的环境变量来配置使用 Bitbucket Server。
version: '2'
services:
drone-server:
image: drone/drone:0.8
environment:
- DRONE_OPEN=true
- DRONE_HOST=${DRONE_HOST}
+ - DRONE_STASH=true
+ - DRONE_STASH_GIT_USERNAME=foo
+ - DRONE_STASH_GIT_PASSWORD=bar
+ - DRONE_STASH_CONSUMER_KEY=95c0282573633eb25e82
+ - DRONE_STASH_CONSUMER_RSA=/etc/bitbucket/key.pem
+ - DRONE_STASH_URL=http://stash.mycompany.com
- DRONE_SECRET=${DRONE_SECRET}
volumes:
+ - /path/to/key.pem:/path/to/key.pem
drone-agent:
image: drone/drone:0.8
command: agent
restart: always
depends_on:
- drone-server
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DRONE_SERVER=ws://drone-server:8000/ws/broker
- DRONE_SECRET=${DRONE_SECRET}
Private Key 私钥文件
Bitbucket server OAuth 要求使用一个 RSA 私钥和公钥。下面的步骤用来生成 RSA 私钥凭据:
openssl genrsa -out /etc/bitbucket/key.pem 1024
这个步骤将私钥凭据储存在 key.pem
。下面的命令用来生成公钥 RSA 凭据,并将其储存在 key.pub
中。
openssl rsa -in /etc/bitbucket/key.pem -pubout >> /etc/bitbucket/key.pub
私钥文件可以在在运行时绑定在 Drone 容器上作为一个空间(volume)来使用,或者作为一个环境变量。
私钥文件可以在在运行时绑定在 Drone 容器上的示例:
version: '2'
services:
drone-server:
image: drone/drone:0.8
environment:
- DRONE_OPEN=true
- DRONE_HOST=${DRONE_HOST}
- DRONE_STASH=true
- DRONE_STASH_GIT_USERNAME=foo
- DRONE_STASH_GIT_PASSWORD=bar
- DRONE_STASH_CONSUMER_KEY=95c0282573633eb25e82
+ - DRONE_STASH_CONSUMER_RSA=/etc/bitbucket/key.pem
- DRONE_STASH_URL=http://stash.mycompany.com
- DRONE_SECRET=${DRONE_SECRET}
+ volumes:
+ - /etc/bitbucket/key.pem:/etc/bitbucket/key.pem
私钥作为环境变量的示例:
version: '2'
services:
drone-server:
image: drone/drone:0.8
environment:
- DRONE_OPEN=true
- DRONE_HOST=${DRONE_HOST}
- DRONE_STASH=true
- DRONE_STASH_GIT_USERNAME=foo
- DRONE_STASH_GIT_PASSWORD=bar
- DRONE_STASH_CONSUMER_KEY=95c0282573633eb25e82
+ - DRONE_STASH_CONSUMER_RSA_STRING=contentOfPemKeyAsString
- DRONE_STASH_URL=http://stash.mycompany.com
- DRONE_SECRET=${DRONE_SECRET}
服务账户
Drone 使用 git+https
来克隆仓库,Bitbucket Server 不支持 使用 oauth token 来克隆仓库。为了绕过这个限制,需要先生成一个服务账户(service account),同时将用户名和密码提供给 Drone。这个服务账户将会被用来克隆仓库。
注册应用程序
在 Bitbucket Server 上注册一个应用,并生成 consumer key。访问账户设置(account settings)页面,选择 Applications 页面,点击 Register new application 。在应用注册的 incoming link 部分,复制 /etc/bitbucket/key.pub
的对应文本到 Public Key
。
使用下面的认证回调 URL(Authorization callback URL),请修改域名为自定义域名: http://drone.mycompany.com/authorize
配置
下面是所有的配置选项。一般来说,使用默认配置可以满足绝大部分的安装需求:
- DRONE_STASH=true
- true 使用 Bitbucket Server (Stash)
- DRONE_STASH_URL
- Bitbucket Server 地址
- DRONE_STASH_CONSUMER_KEY
- Bitbucket Server oauth1 consumer key
- DRONE_STASH_CONSUMER_RSA
- Bitbucket Server oauth1 private key 文件
- DRONE_STASH_CONSUMER_RSA_STRING
- Bibucket Server oauth1 private key 字符串
- DRONE_STASH_GIT_USERNAME
- 用来克隆仓库的服务账户的账户名
- DRONE_STASH_GIT_PASSWORD
- 用来克隆仓库的服务账户的密码