container2wasm icon indicating copy to clipboard operation
container2wasm copied to clipboard

genisoimage: Error / mkisofs / Joliet tree sort failed. `-joliet-long` switch may help you.

Open ken-okabe opened this issue 1 year ago • 3 comments

Hi, thank you for this great product.

Basically, I try to make dotnet wasm.

Dockerfile

FROM archlinux:latest

RUN pacman -Syu --noconfirm && \
    pacman -S --noconfirm zsh nodejs npm git wget && \
    wget https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh && \
    sh ./dotnet-install.sh -v 8.0.201 && \
    export DOTNET_ROOT=$HOME/.dotnet && \
    export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

sudo c2w foo arch-zsh-node-dotnet8.wasm

then, here is a build error:

3.091 genisoimage: Error: /rootfs/oci/rootfs/root/.dotnet/sdk/8.0.201/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.5_0.targets and /rootfs/oci/rootfs/root/.dotnet/sdk/8.0.201/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.targets have the same Joliet name
3.091 Joliet tree sort failed. The -joliet-long switch may help you.
------
container2wasm3626668171:402
--------------------
 400 |     COPY --link --from=tini-amd64-dev /out/tini /rootfs/sbin/tini
 401 |     RUN mkdir -p /rootfs/proc /rootfs/sys /rootfs/mnt /rootfs/run /rootfs/tmp /rootfs/dev /rootfs/var /rootfs/etc && mknod /rootfs/dev/null c 1 3 && chmod 666 /rootfs/dev/null
 402 | >>> RUN mkdir /out/ && mkisofs -l -J -R -o /out/rootfs.bin /rootfs/
 403 |     # RUN isoinfo -i /out/rootfs.bin -l
 404 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c mkdir /out/ && mkisofs -l -J -R -o /out/rootfs.bin /rootfs/" did not complete successfully: exit code: 1
exit status 1

As the error says:

/rootfs/oci/rootfs/root/.dotnet/sdk/8.0.201/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.5_0.targets

and

/rootfs/oci/rootfs/root/.dotnet/sdk/8.0.201/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.targets

have the same Joliet name, and Joliet tree sort failed.

The -joliet-long switch of mkisofs / genisoimage may help.


Before I use my own Dockerfile, I've tried the official dotnet container images:

https://github.com/devcontainers/images/tree/main/src/dotnet

and hit the same error, therefore this error seems inevitable.

Is there any possible work-around?

Thank you.

ken-okabe avatar Apr 20 '24 08:04 ken-okabe

https://github.com/ktock/container2wasm/blob/main/Dockerfile

402 | >>> RUN mkdir /out/ && mkisofs -l -J -R -o /out/rootfs.bin /rootfs/

Actually, I modified this line to add -joliet-long option, then re-make the c2w and the build process finished without the error.

I think it may be good to add the -joliet-long option to c2w also.

ken-okabe avatar Apr 20 '24 09:04 ken-okabe

Thanks for reporting this issue and the workaround.

I think it may be good to add the -joliet-long option to c2w also.

SGTM

ktock avatar Apr 23 '24 06:04 ktock

Hello, I have the same issue when converting an image. However, my error is:

container2wasm1342668950:431
--------------------
 429 |     COPY --link --from=tini-amd64-dev /out/tini /rootfs/sbin/tini
 430 |     RUN mkdir -p /rootfs/proc /rootfs/sys /rootfs/mnt /rootfs/run /rootfs/tmp /rootfs/dev /rootfs/var /rootfs/etc && mknod /rootfs/dev/null c 1 3 && chmod 666 /rootfs/dev/null
 431 | >>> RUN mkdir /out/ && mkisofs -l -J -R -o /out/rootfs.bin /rootfs/
 432 |     # RUN isoinfo -i /out/rootfs.bin -l
 433 |

Where should I fix? I am using the latest release (v0.6.5). Also I read the Dockerfile of the main branch, but there were two lines of mkisofs -l -J -R -o /out/rootfs.bin /rootfs/. Should I append -joliet-long option to the both lines?

km19809 avatar Sep 17 '24 12:09 km19809

I had the same issue with this image.

It seems like the error was triggered when processing these filenames which are included in my image: https://github.com/ibhagwan/fzf-lua/tree/8a63c9e7998a51319c3cc118bb38241c18acc9c8/tests/screenshots

I added the -joliet-long flag to all mkisofs commands and the build continued (did not finish due to another error).

mgnsk avatar Feb 11 '25 13:02 mgnsk