首页 > 解决方案 > 没有使用 LibGit2Sharp 将存储库克隆到 docker 容器中

问题描述

我目前正在使用 .net 标准 2.0 部署微服务,它可以克隆或更新来自 GitLab 的存储库。

为此,我有一个可以在 Windows 环境中完美运行的功能,但是在我启动它之后,它并不能在 docker 容器中发挥作用。

if (gitFolder.GetDirectories().Length == 0)
{
    try
    {
        // Get user credentials
        Repository.Clone("repository.git", deployerPath, new CloneOptions()
        {
            BranchName = "develop",
            CredentialsProvider = CredentialsProvider(),
        });
    }
    catch (Exception ex)
    {
        ...
    }
}
else
{
    try
    {
        var repository = new Repository(deployerPath);
        Commands.Pull(repository,
            new Signature("blah", "blah@blah.com", DateTimeOffset.Now), new PullOptions()
            {
                FetchOptions = new FetchOptions() {CredentialsProvider = CredentialsProvider()},
                MergeOptions = new MergeOptions() {FailOnConflict = true},
            });
    }
    ...

我希望看到包含所有子文件夹/文件的文件夹,就像在 Windows 中一样,但它始终是空的。此外,文件夹的时间戳会在它应该进行拉取时更新。

这是 Linux 发行版的信息:

Linux 828ec2e85f2c 4.9.184-linuxkit #1 SMP 2019 年 7 月 2 日星期二 22:58:16 UTC x86_64 GNU/Linux

我看到其他问题,他们指出在拉动时应该进行一些初始化设置,但至少应该发生克隆(根据我所读到的内容)。

任何帮助是极大的赞赏。

标签: c#docker.net-standard-2.0libgit2sharp

解决方案


添加一些日志记录后,我发现这是错误消息:too many redirects or authentication replays。因此,我继续应用针对该问题所述的解决方案以使其发挥作用。


推荐阅读