私はdrone.ioの助けを借りて私たちの小さなプロジェクトを自動化できるかどうかを調べようとしています。これまでのところ期待はしていますが、この単純なステップはうまくいかないようです。drone.ioがsigファイルと.drone.ymlとの一致に失敗する
私の設定は、ウェブフックを有効にしてゴーグルであり、無人機のウェブインターフェースを介してレポが有効になっています。 Droneは2つのドッカーインスタンスで実行されています。
ドッキングウィンドウ-compose.yml:
version: '2'
services:
drone-server:
image: drone/drone:0.5
ports:
- 8000:8000
volumes:
- /opt/docker/drone:/var/lib/drone
- /path/to/ssh:/key
environment:
- DRONE_OPEN=true
- DRONE_GOGS=true
- DRONE_GOGS_URL=http://gogs.xx.xx
- DRONE_GOGS_GIT_USERNAME=user
- DRONE_GOGS_GIT_PASSWORD=password
- DRONE_SECRET=key
- [email protected]/key/id_rsa
- DRONE_DEBUG=true
drone-agent:
image: drone/drone:0.5
command: agent
restart: unless-stopped
depends_on: [ drone-server ]
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- DRONE_SERVER=ws://drone-server:8000/ws/broker
- DRONE_SECRET=key
私はこれがドッキングウィンドウコンテナ内で作業することができませんでしたので、私は別にCLIをインストールする必要がありました。署名するコマンド:
drone -s http://<drone interface>:8000 -t <token copied from webinterface> sign <repo> --in ".drone.yml" --out ".drone.yml.sig"
私はコミットして両方のファイルをリポジトリに送りました。ドローンデバッグに次のエラーが続きます。
drone-server_1 | time="2017-04-12T10:04:09Z" level=debug msg="cannot verify .drone.yml.sig file. no match"
drone-server_1 | time="2017-04-12T10:04:09Z" level=info ip=172.19.0.1 latency=374.072732ms method=POST path="/hook" status=200 time="2017-04-12T10:04:09Z" user-agent=GogsServer
何が問題になりましたか?
.drone.yml.sigファイルをプッシュしてからyamlを変更して署名を無効にする、または2)既定のcrlf設定がlinux。これはhttps://github.com/drone/drone/issues/1662で記述されており、https://help.github.com/articles/dealing-with-lineingendings/ –