2017-01-18 13 views
0

私は自分のCIとしてDrone 0.4を使用しています。自己ホスト型のプライベートレジストリからAWSのECS/ECRに移行しようとしている間に、自分の.drone.yml内のこれらのイメージを複合サービスとして参照する際に、認証の問題が発生しました。例ドローンのコンポサービスのAWS ECR認証0.4

build: 
    image: python:3.5 
    commands: 
     - some stuff 
compose: 
    db: 
     image: <account_id>.dkr.ecr.us-east-1.amazonaws.com/reponame:latest 

ため

ドローンビルドがECRから引っ張って Authentication requiredを言って、それが必要のように、それは、アウトerroringだ実行されます。 AWS ECRの認証時に、aws-cliのecr get-loginのようなものを使用して、一時的なパスワードを与えることを理解しています。私はそれを私の無人機の機密ファイルに挿入してその値をauth_configで使うことができると知っていますが、それは私の秘密のファイルを12時間ごとに更新する必要があることを意味します。無人機で認証プロセス自体を実行する方法はありますか?

+1

Droneが実装するユーザー名とパスワードの認証は、プロバイダ(DockerHub、GCRなど)間で共通です。つまり、ECR特別なパスワードの有効期限とリフレッシュの要件を認識していません。現時点では解決策はありません。最良の選択肢は、この機能を追加するためにDroneにパッチを提供することです。 –

+0

@BradRydzewski私がDrone githubに行ったとき、私は0.4のブランチを見ませんでしたが、私はマスターとフィーチャー/ mqを見ただけで別の場所を探していました。現在、Droneはバージョン0.5になっています。 – Nimnam1

答えて

0

あなたのビルドを実行する前に、同じシェルでの認証コマンドを実行することができます/構成コマンド:我々は、我々は(このシェルを出しジ​​ェンキンスパイプラインで、このシェルスクリプトの一部を持っているドッカとのセットアップでそれを行う方法

スクリプトは)あなたがしなければならないすべてはあなたのAWSの資格情報を設定され、ジェンキンスの有無にかかわらず動作します:

`aws ecr get-login --region us-east-1` 
${MAVEN_HOME}/bin/mvn clean package docker:build -DskipTests 
docker tag -f ${DOCKER_REGISTRY}/c-server ${DOCKER_REGISTRY}/c-server:${RELEASE_VERSION 
docker push ${DOCKER_REGISTRY}/c-server:${RELEASE_VERSION} 

ECRでそれをプッシュする画像または後続のコマンドを作成し、Mavenのコマンドを実行しながら、だから、それは使用しています認証は最初のコマンドから取得します。

+0

えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ、現在はできません。あなたは答えが他にも役立つかもしれません。 – Nimnam1