
[code]

    $ docker compose build 
    $ docker compose up -d
    Error response from daemon: max depth exceeded
    
[/code]

上記コマンド手順でDockerコンテナを起動しようとしましたが、エラーが発生し、起動できませんでした。  
原因としては、Dockerイメージがレイヤー数の上限である125を超過したことが考えられます。

解決する方法として、
--squashオプションを使う方法がありますが、この方法は、DockerのFROMイメージのレイヤー圧縮できないため、要件を満たしませんでした。したがって、別の方法で、この問題に対処しようかと考えています。手段として、
Dockerコンテナ化した後に、export/importすることでレイヤーを束ねるという方法も考えられますが、
定義されているENVなどが消えてしまうという問題があります。Dockerfileを入手して、レイヤーを小さくするという方法もありますが、それは欠点があります。同ファイルに定義されているコマンドに再現性がなかったり、再ビルドに数時間以上かかるケースがあり、非効率な点です。

これらの問題に対処する親Dockerイメージのレイヤー数を小さくする良い解決方法を教えて下さい。


CC BY-SA 4.0
2022-04-15T02:45:02.803
88345
2022-04-15T02:53:18.927
2022-04-15T02:53:18.927
52232
52232
question
docker docker-compose
すでに作られているDockerイメージのレイヤー数を少なく圧縮する方法はありますか？