ironmansoftware / universal-automation

Universal Automation is the PowerShell-first automation platform.
https://ironmansoftware.com/universal-automation/
MIT License
24 stars 4 forks source link

git2 DLL not found on Linux / PowerShell 7.0 #169

Open claudiospizzi opened 4 years ago

claudiospizzi commented 4 years ago

Describe the Issue

When I try to run the Universal Automation in a PowerShel. 7.0 container on Linux CentOS 7, it will throw an exception around the LibGit2Sharp library. It's not able to load a DLL / dependency.

UARepositoryPath: /app/repository
GitRemote: https://domain/group/repo.git
Application startup exception: System.TypeInitializationException: The type initializer for 'LibGit2Sharp.Core.NativeMethods' threw an exception.
 ---> System.DllNotFoundException: Unable to load shared library 'git2-7ce88e6' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libgit2-7ce88e6: cannot open shared object file: No such file or directory
   at LibGit2Sharp.Core.NativeMethods.git_libgit2_init()
   at LibGit2Sharp.Core.NativeMethods.InitializeNativeLibrary()
   at LibGit2Sharp.Core.NativeMethods..cctor()
   --- End of inner exception stack trace ---
   at LibGit2Sharp.Core.NativeMethods.git_repository_open_ext(git_repository*& repository, FilePath path, RepositoryOpenFlags flags, FilePath ceilingDirs)
   at LibGit2Sharp.Core.Proxy.git_repository_open_ext(String path, RepositoryOpenFlags flags, String ceilingDirs)
   at LibGit2Sharp.Repository.IsValid(String path)
   at UniversalAutomation.Git.GitService.Exists() in D:\a\1\s\src\UniversalAutomation.Git\GitService.cs:line 45
   at UniversalAutomation.Git.GitService.Initialize() in D:\a\1\s\src\UniversalAutomation.Git\GitService.cs:line 49
   at UniversalAutomation.Startup.ConfigureServices(IServiceCollection services) in D:\a\1\s\src\UniversalAutomation\Startup.cs:line 195
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection services)
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.Initialize()
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()

To Reproduce

Check this repo, it will contain the code how to start the container: https://github.com/claudiospizzi/UniversalAutomationDocker/tree/master/linux-centos7

(Of course adding real values in the .env file)

Expected behavior

Universal Automation should start without any git errors.

Version Information