問題タブ [docker-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
497 参照

docker - Docker API ビルド Tar ファイルのパス

API を使用して Docker のイメージを構築しようとしています。Docker ファイルとその他のファイルとフォルダーを含む TAR ファイルにコンテキストがあります。

Dockerfile には、コンテナーに配置する必要があるファイルとフォルダーの「COPY」コマンドがいくつかあります。しかし、これは機能せず、後でコピーできるように TAR 内にあるこれらのファイルを参照することが正しいかどうかもわかりません。

TAR の構造はおよそ次のとおりです。

  • context.tar
    • Dockerfile
    • /コード
      • (多くの py ファイル)
    • entrypoint.sh
    • nginx.conf
    • requeriments.txt
    • ...
    • ...

次に、Dockerfile には次のような行がいくつかあります。

COPY nginx.conf /etc/nginx/conf.d/

COPY ./コード/api

これらのコピーは正しいですか? API は TAR をルート パスとして解釈しますか? 問題は、エラーが発生せず、ログにも何も表示されないことです。最終的なイメージが構築の途中で残っているだけです。tar からコンテナーにファイルをコピーする必要があると思います。

編集1:

実のところ、まだうまく機能していませんが、TWICE IN A RUN を起動すると、ビルドが機能することに気付きました。1回目は中途半端で、2回目は正しくプロセスを完了することに成功します。なんらかのバグだと思います。

私が行ったもう 1 つのことは、基本的に同じことだと思いますが、COPY を ADDS に置き換えることです。

TAR ファイル:

TAR ファイルの内容

API 経由のビルド リクエスト:

[16:09:05.650][ApiProxy][Info] time="2018-07-17T16:09:05+02:00" msg="proxy << POST /build?t=test%3Alatest&nocache=1&dockerfile=Dockerfile\ん」