2017-05-19 15 views
1

Drone CI 0.6をGithubでセットアップしようとしています。しかし、私はoauthエラーを取得し続けています。おそらく誰かが私が間違っていることを指摘することができます。私は&とDRONE_HOSTの両方を試しましたが、常に不一致があります。Drone.io with Github redirect_uri_mismatch

エラー:

は、ユーザーを認証することはできません。 redirect_uri_mismatch redirect_uriは、このアプリケーションの登録済みコールバックURLと一致する必要があります。 https://developer.github.com/v3/oauth/#redirect-uri-mismatch

ドッキングウィンドウ-compose.yml:

version: '2' 

services: 
    drone-server: 
    image: drone/drone:0.6 
    ports: 
     - 8822:8000 
    volumes: 
     - /var/lib/drone:/var/lib/drone/ 
    restart: always 
    environment: 
     - DRONE_OPEN=true 
     - DRONE_HOST=http://ci.rallabs.com 
     - DRONE_GITHUB=true 
     - DRONE_GITHUB_CLIENT=myGithubClient 
     - DRONE_GITHUB_SECRET=myGithubSecret 
     - DRONE_SECRET=mySecret 
    drone-agent: 
    image: drone/drone:0.6 
    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=mySecret 

Githubのアプリの詳細:ドローンが逆の背後で実行されているので、redirct_url不一致のための一般的な理由がある

Github settings

+0

を実行している無人機、例えば、nginxのように? –

+0

はい、そのnginxの背後にあり、私はそれを行うために 'proxy_pass'機能を使用しています – Brenwell

答えて

4

プロキシ(例えばnginx)であり、自分自身のアドレスを適切に把握することはできませんリダイレクトURLを作成します。これに対する解決策は、X-Forwarded-ForX-Forwraded-Protoのパラメータをセットアップして、Droneが独自のアドレスを決定できるようにすることです。

はnginxのために、バージョン0.6のように、これはドキュメントから推奨nginxの構成である[1]

map $http_upgrade $connection_upgrade { 
    default upgrade; 
    ''  close; 
} 

server { 
    listen 80; 
    server_name drone.example.com; 

    location/{ 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_set_header Host $http_host; 

     proxy_pass http://127.0.0.1:8000; 
     proxy_redirect off; 
     proxy_http_version 1.1; 
     proxy_buffering off; 

     chunked_transfer_encoding off; 
    } 

    location ~* /ws { 
     proxy_pass http://127.0.0.1:8000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_read_timeout 86400; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_set_header Host $http_host; 
    } 
} 

リバースプロキシまたはロードバランサの背後にある[1] http://docs.drone.io/setup-with-nginx/

+0

素晴らしい、完璧に、ありがとう! – Brenwell

関連する問題