2017-05-11 11 views
0

Docker-ImageをセットアップするためにJenkinsからArtifactを取得する必要があります。Dockerfileで使用されるJenkins用のAPIトークンを保存する場所

マイ・ジェンキンスがhere

見られるように

wget --auth-no-challenge --http-user=user --http-password=apiToken --secure-protocol=TLSv1 http://jenkins.yourcompany.com/job/your_job/build?token=TOKEN 

経由のwgetに渡すことができる認証を必要とする今、私は私のDockerfileにAPIトークンを渡す必要があります。

Dockerfileがパブリックでアクセスできる限り、私はファイル内にapi-token plaintextを保存したくありません。 代替はドッカーARGになりますが、それは「ドッキングウィンドウ履歴」

コピーおよびパスワードを含むファイルを削除して見られるように、彼らは私にはとてもエレガントではないと思われるパスワードやセキュリティ関連のデータのためにそれをお勧めしません。

他に解決策はありますか?

答えて

0

docker buildを実行してからCOPY artefact /somewhereを使用してDockerfileを実行する前に、アーチファクトをダウンロードするのが最善の方法です。

このサイズの影響を心配しているので、ビルド時に--squashを使用してレイヤーを圧縮できます。

https://docs.docker.com/engine/reference/commandline/image_build/

あなたは多段(実験)のビルドでプレイしたい場合は、使用できます。

FROM base_image AS prepare 

COPY artefact /something 
RUN chown user /something 

FROM base_image 

COPY --from=prepare /something /something 

https://docs.docker.com/engine/userguide/eng-image/multistage-build/

+0

これが私の最初の試みでした。問題は、COPYがアーティファクトをROOTとしてコピーし、別のユーザーとしてアプリを実行する必要があることです。 Dockerfileの内部でchownを実行すると、追加のレイヤーが作成されるため、Image Sizeが大幅に増加します(Artefact Size〜1G)。 –

+0

ビルド中に '--squash'オプションを使うと画像サイズの問題を解決できます。 – Rawkode

+0

詳しい情報が追加されました – Rawkode

関連する問題