abarichello / godot-ci

Docker image to export Godot Engine games. Templates for Gitlab CI and GitHub Actions to deploy to GitLab Pages/GitHub Pages/Itch.io.
https://hub.docker.com/r/barichello/godot-ci
MIT License
759 stars 133 forks source link

Docker godot mono 4.1.3 image not working - .NET not initalized #124

Open gdomjan83 opened 1 year ago

gdomjan83 commented 1 year ago

I was trying to run a Gitlab pipeline using this docker image: barichello/godot-ci:mono-4.1.3

But as soon as the pipeline starts, this is the error I'm getting:

.NET: Initializing module... ERROR: The host fxr folder does not exist: /usr/share/dotnet/host/fxr. at: try_get_path_from_dotnet_root (modules/mono/editor/hostfxr_resolver.cpp:325) ERROR: .NET: One of the dependent libraries is missing. Typically when the hostfxr, hostpolicy or coreclr dynamic libraries are not present in the expected locations. at: find_hostfxr (modules/mono/mono_gd/gd_mono.cpp:125) ERROR: .NET: Failed to load hostfxr at: initialize (modules/mono/mono_gd/gd_mono.cpp:394) Unable to load .NET runtime, specifically hostfxr. Attempting to create/edit a project will lead to a crash. Please install the .NET SDK 6.0 or later from https://dotnet.microsoft.com/en-us/download and restart Godot.

I'm not too good with this, so I'm can't find the answer. Maybe someone can find a solution.

cmrqs commented 10 months ago

Same error using godot-ci:mono-4.2.1

mustachebutter commented 10 months ago

Hey, so I found out this action which set up dotnet for the workflow

      - name: .NET installation
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: "6.0.x"

I got it to work but there's more problem keep popping up after this (probably due to me also not knowing how to set all of this up properly lol). But we'll figure out as we go, I hope this helpful for you guys

nanodeath commented 10 months ago

@mustachebutter I can confirm that using that GitHub action helps a lot and enables the build to succeed 🙌

Now if I can just figure out why the published version has random scripts/connections missing...

mushwrooom commented 7 months ago

Exactly same bug happening on Gitlab Runner on godot-ci:mono-4.2.1 tag.

Hobart2967 commented 7 months ago

+1 having this problem too.

Hobart2967 commented 7 months ago

I guess this just needs to be documented - Also, I would like to choose my dotnet version myself, so it is great that it is not included in the docker image.

Hey, so I found out this action which set up dotnet for the workflow

      - name: .NET installation
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: "6.0.x"

I got it to work but there's more problem keep popping up after this (probably due to me also not knowing how to set all of this up properly lol). But we'll figure out as we go, I hope this helpful for you guys

mustachebutter commented 7 months ago

I got a fully working example here if anyone needs. Just modify a couple of things for this to work accordingly for your project. I have this pipeline triggered by creating a release tag in GitHub. Build and then push to Itch.IO with butler. That's the usefulness of the docker image, everything is there for us to use, but I feel like the documentation is a bit convoluted for someone who is not used to it.

https://gist.github.com/mustachebutter/eb9e6fd729ea4f1e0006847f7b5fdf22