containers / skopeo

Work with remote images registries - retrieving information, images, signing content
Apache License 2.0
8.1k stars 767 forks source link

Expose copy.Options.ForceCompressionFormat #2343

Open stephenjudkins opened 4 months ago

stephenjudkins commented 4 months ago

Steps to reproduce:

mtrmac commented 4 months ago

Thanks for your report. This is tracked in https://github.com/containers/image/issues/1270 ; fixing that could break uploads to some registries.

As described there, the code now allows forcing compression to happen, ~avoiding the MIME type inconsistency. That option does not currently exist in Skopeo, it could be added.

stephenjudkins commented 4 months ago

Got it. My workaround now is to first push to a dir: and compress and then push the repository, which isn't too burdensome. Would be nice if skopeo could do this directly. I'll also look at a PR in the upstream tool (nix dockertools) that's creating the upstream package and seeing if it can just compress the layers there

stephenjudkins commented 4 months ago

To be clear, this was not docker-archive. It was Nix dockerTools. Here's the manifest.json it creates:

[
    {
        "Config": "13644826e3861fa657c4f2f92507dd1cfa49df418e415848c1ba8236a0b9ec7d.json",
        "RepoTags": [
            "lambdaify-cowsay:sd7qj2zb884f1vr04vbvqkg7pi21lkjb"
        ],
        "Layers": [
            "e719c9bac8ba3f1aac6ab6d3dbd006be2bee3dca4030e0fca96297ba72bdb569/layer.tar",
            "bc66d165bafbd6e4f8ae0b7b4f7e2c2ee7ed104ec033064ae2eb2c5fb8b9ba13/layer.tar",
            "ffdc9f7eef9b8ab8eaa574fbb46b6bae67da05e28a06673a050e65e282fc8075/layer.tar",
            "e3a28d402ebe81d6a75162bd44f6fb9c8cc36573d7442d1424e3935ab05cf658/layer.tar",
            "d15644b70db264dbb5e3276d8eb4270e38f4e4948979b6d4a2e9e0dc7e4b9a9b/layer.tar",
            "209087dc5746df140db7b23044954a231e757f9cd8d47ae72c573e79cc51e8b9/layer.tar",
            "767b335f27daae8a8eb46a23237b7e53317a888389451617c51d328dd4522893/layer.tar",
            "ff09b2f841e0a24bd19d286a920b152e2bfb69e78474f9d2b098f3cc9ca3651d/layer.tar",
            "237ac55de4e0cd14fc0a46899bb6a0d57dcbffd669ce06c3d9d8b2b3b66eb2ea/layer.tar",
            "3117be9a0a806e63f62c269522673770113a6700fe3be7b59889bdf5fc0b22d4/layer.tar",
            "47f7e9765eb2f923ad057b94a467e68bd88527fa1c1760264b8b8d2179be72fc/layer.tar",
            "12e851f11e10e943c8f0255bbe1b38e033389c3d1a1ffcda2be329636aca02c9/layer.tar",
            "b9322a4589b2492fbc9a3b6836e4f9d4b81a5a9b290a5d91c78daaa138b56200/layer.tar",
            "d2a303717fe9d19f091f594b8cdbbbf3260b94869582b56cf4136aacdd69e25d/layer.tar",
            "12166ccb22c63af4103ee487b560c2d30c71659509beeb02cf7003a03400eafa/layer.tar",
            "da381933e68eca7e83ff1cd35fe906b4c4e5d13310aeea8c0669914e89281b57/layer.tar",
            "af8eccd692f27910da2222754a3782c0939b3adc936d7813c0805d044b18ddd1/layer.tar",
            "eb2e6e1da446e0f69a3beedf3b23e7c61b310617957526c4636c798263dfc8b2/layer.tar"
        ]
    }
]
mtrmac commented 4 months ago

Would you care to file a Skopeo PR to expose https://github.com/containers/image/pull/2068 ? That might be the simplest way to do this in one step.

(“docker-archive creates” refers to the in-memory manifest created when reading the docker save-formatted tarballs.)

stephenjudkins commented 4 months ago

Thanks for the context!

github-actions[bot] commented 2 months ago

A friendly reminder that this issue had no activity for 30 days.