genisoimage: Error / mkisofs / Joliet tree sort failed. `-joliet-long` switch may help you.
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.
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.
Thanks for reporting this issue and the workaround.
I think it may be good to add the -joliet-long option to c2w also.
SGTM
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?
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).