Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ken-okabe opened this issue Apr 20, 2024 · 3 comments

Comments

@ken-okabe
Copy link

ken-okabe commented Apr 20, 2024

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
Copy link
Author

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.

@ktock
Copy link
Owner

ktock commented Apr 23, 2024

Thanks for reporting this issue and the workaround.

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

SGTM

@km19809
Copy link

km19809 commented Sep 17, 2024

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants