コンテナが同じレイヤーを構築し続けるのはなぜですか?

サミュエルデア

以下のコンテナは現在、2回目の実行後に障害が発生しています。デバッグしようとすると、もう一度実行する必要があります。

FROM node:10-alpine

# Create app directory
WORKDIR /usr/src/app

# Copy app
COPY . .

# USER root 
# install packages
RUN apk --no-cache --virtual build-dependencies add \
   git \ 
   python \ 
   make \ 
   g++ \ 
   && npm config set user 0 \
   && npm config set unsafe-perm true \
   && npm i -g wait-on concurrently  [email protected]\
   && npm install \
   && apk del build-dependencies

RUN truffle compile --all // FAILS HERE

# Expose the right ports, the commands below are irrelevant when using a docker-compose file.
EXPOSE 3000
CMD ["npm", "run", "server"] 

コンテナを再構築するたびに、最初のRUNから最初からやり直すため、プロセスが長くなります。

Dockerについての私の理解は、コンテナー内のレイヤーはキャッシュされ、ファイルが変更された場合にのみ再構築されるべきであるということですか?

これについてのポインタをいただければ幸いです。

キング・チョン・ファン

Dockerfileの各命令は、イメージレイヤー(いくつかの例外を除く)になり、イメージレイヤーはビルド中にキャッシュとして使用されます。ただし、1つのレイヤーが無効になるとすぐに、後続のすべてのレイヤーを再構築する必要があります。

あなたの例では、COPY . .命令が違いをもたらす場合、次のRUN apk ...命令も無効になり、再実行されます。

プロジェクトファイルをコピーする前にAlpineパッケージをインストールし、その後にnpmインストールを実行することをお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Dockerfileで同じRUNコマンドを使用すると、イメージ間でレイヤーサイズが異なるのはなぜですか?

分類Dev

1x1 convが完全に接続されたレイヤーと同じなのはなぜですか?

分類Dev

同じバイナリイメージを実行するたびにローカル変数のアドレスが変化し続けるのはなぜですか?

分類Dev

rsync が呼び出しごとに同じファイルを送信し続けるのはなぜですか?

分類Dev

C ++ 17では、連想コンテナに(非 `const`)「イテレータ」を受け取る「erase」メンバー関数があるのはなぜですか?

分類Dev

Traefikが同じネットワーク上でコンテナを見つけられないのはなぜですか?

分類Dev

イテレータとポインタが同じアドレスを与えないのはなぜですか?

分類Dev

一部のコンパイラーが同一の文字列リテラルに同じアドレスを使用するのはなぜですか?

分類Dev

travis ciでdockerイメージを使用する(Dockerfileまたはコンテナーの構築なし)

分類Dev

一見同じように見える3項演算子構成体が生成しないのに、 'if-else'ステートメントを使用するとTypeScriptコンパイラエラーが生成されるのはなぜですか?

分類Dev

背景が不透明な場合でも、同じレイヤーのテキストが重なるのはなぜですか?

分類Dev

なぜスライスの要素のアドレスが同じですか?そしてそれらをポインタにコピーする方法は?

分類Dev

Redirect()関数が同じコントローラー内で私をリダイレクトしようとするのはなぜですか

分類Dev

サーバーの構成が同じであるときにロードランナーインスタンスの数を増やすと、負荷テストでより良い結果が得られるのはなぜですか

分類Dev

このElasticSearchスキャンとスクロールが同じスクロールIDを返し続けるのはなぜですか?

分類Dev

DELETE TOP(X)ステートメントが前のSELECT TOP(X)が返したのと同じレコードを削除しないのはなぜですか?

分類Dev

コードが同じコマンドライン引数を2回出力するのはなぜですか?

分類Dev

C ++ 17の `constexpr if`を使用したこのテンプレート構造体がMSVCでのコンパイルに失敗するのはなぜですか?

分類Dev

Windows 10でシステムトレイのWi-Fiアイコンが白から灰色に点滅し続けるのはなぜですか?

分類Dev

ターミナルが「ファイル数1」を表示し続けるのはなぜですか?

分類Dev

ターミナルが「^[[2~]」をランダムに表示し続けるのはなぜですか?

分類Dev

コードがKeyErrorをスローし続けるのはなぜですか?

分類Dev

別々の「貼り付け」イベントリスナーが両方とも同じ<div>に貼り付けるのはなぜですか?

分類Dev

このシナリオでReactが子をレンダリングするのはなぜですか?(状態は同じで、useStateを使用します)

分類Dev

PHPログインシステムでエラー500が発生し続けるのはなぜですか

分類Dev

Openshiftがローカルで実行されている同じDockerコンテナーよりもはるかに多くのコンテナーメモリ使用量を報告するのはなぜですか?

分類Dev

ナビゲーターを構築した後、スタック上のルートが最初のルートだけではないのはなぜですか?

分類Dev

Java Just in Time Compilerが同じメソッドを再コンパイルし、メソッドを非レントにするのはなぜですか

分類Dev

C ++テンプレート関数が同じヘッダーファイル内の関数を認識しないのはなぜですか

Related 関連記事

  1. 1

    Dockerfileで同じRUNコマンドを使用すると、イメージ間でレイヤーサイズが異なるのはなぜですか?

  2. 2

    1x1 convが完全に接続されたレイヤーと同じなのはなぜですか?

  3. 3

    同じバイナリイメージを実行するたびにローカル変数のアドレスが変化し続けるのはなぜですか?

  4. 4

    rsync が呼び出しごとに同じファイルを送信し続けるのはなぜですか?

  5. 5

    C ++ 17では、連想コンテナに(非 `const`)「イテレータ」を受け取る「erase」メンバー関数があるのはなぜですか?

  6. 6

    Traefikが同じネットワーク上でコンテナを見つけられないのはなぜですか?

  7. 7

    イテレータとポインタが同じアドレスを与えないのはなぜですか?

  8. 8

    一部のコンパイラーが同一の文字列リテラルに同じアドレスを使用するのはなぜですか?

  9. 9

    travis ciでdockerイメージを使用する(Dockerfileまたはコンテナーの構築なし)

  10. 10

    一見同じように見える3項演算子構成体が生成しないのに、 'if-else'ステートメントを使用するとTypeScriptコンパイラエラーが生成されるのはなぜですか?

  11. 11

    背景が不透明な場合でも、同じレイヤーのテキストが重なるのはなぜですか?

  12. 12

    なぜスライスの要素のアドレスが同じですか?そしてそれらをポインタにコピーする方法は?

  13. 13

    Redirect()関数が同じコントローラー内で私をリダイレクトしようとするのはなぜですか

  14. 14

    サーバーの構成が同じであるときにロードランナーインスタンスの数を増やすと、負荷テストでより良い結果が得られるのはなぜですか

  15. 15

    このElasticSearchスキャンとスクロールが同じスクロールIDを返し続けるのはなぜですか?

  16. 16

    DELETE TOP(X)ステートメントが前のSELECT TOP(X)が返したのと同じレコードを削除しないのはなぜですか?

  17. 17

    コードが同じコマンドライン引数を2回出力するのはなぜですか?

  18. 18

    C ++ 17の `constexpr if`を使用したこのテンプレート構造体がMSVCでのコンパイルに失敗するのはなぜですか?

  19. 19

    Windows 10でシステムトレイのWi-Fiアイコンが白から灰色に点滅し続けるのはなぜですか?

  20. 20

    ターミナルが「ファイル数1」を表示し続けるのはなぜですか?

  21. 21

    ターミナルが「^[[2~]」をランダムに表示し続けるのはなぜですか?

  22. 22

    コードがKeyErrorをスローし続けるのはなぜですか?

  23. 23

    別々の「貼り付け」イベントリスナーが両方とも同じ<div>に貼り付けるのはなぜですか?

  24. 24

    このシナリオでReactが子をレンダリングするのはなぜですか?(状態は同じで、useStateを使用します)

  25. 25

    PHPログインシステムでエラー500が発生し続けるのはなぜですか

  26. 26

    Openshiftがローカルで実行されている同じDockerコンテナーよりもはるかに多くのコンテナーメモリ使用量を報告するのはなぜですか?

  27. 27

    ナビゲーターを構築した後、スタック上のルートが最初のルートだけではないのはなぜですか?

  28. 28

    Java Just in Time Compilerが同じメソッドを再コンパイルし、メソッドを非レントにするのはなぜですか

  29. 29

    C ++テンプレート関数が同じヘッダーファイル内の関数を認識しないのはなぜですか

ホットタグ

アーカイブ