Docker не может получить указанный .NET SDK в Jenkins (SDK не найден, ошибка) - PullRequest
0 голосов
/ 13 июня 2019

Мое решение размещено на AWS, и, по-видимому, к 1 июля они прекращают поддержку .NET core 1.0.

Поэтому я стремлюсь обновить свою версию ядра .NET с 1.0 до 2.1.Я могу выполнить развертывание непосредственно в AWS (используя «sls deploy ...») без проблем, однако у меня возникают проблемы с этим через Jenkins.

Функция getCompileDockerImage () в моем Jenkinsfile возвращает версию SDK, совместимую с 2.1 (2.1.507-sdk).

Содержит следующий код:

def getCompileDockerImage()
{
    return 'microsoft/dotnet:2.1.507-sdk'
}

Однако, после запуска Docker команды «docker pull microsoft / dotnet: 2.1.507-sdk», я получаю следующее сообщение: «Ошибкаответ от daemon: manifest для microsoft / dotnet: 2.1.507-sdk не найден ".

Я предполагаю, что указанный SDK недоступен для использования Дженкинсом, но я не уверен, как выполнить загрузкуэта версия.

Я пытался использовать SSH в экземпляре Master и Slave, чтобы попытаться определить, что установлено в этих экземплярах, но выполнение «dotnet --info» не дает результатов.

Ожидаемые результаты: Jenkins может извлечь указанный SDK и создать решение. Фактические результаты: Jenkins не может извлечь указанный SDK

1 Ответ

0 голосов
/ 13 июня 2019

Microsoft внесла некоторые изменения в работу своих образов Docker.Официально все они теперь находятся в собственном реестре контейнеров Azure от Microsoft (mcr.microsoft.com).Все списки Docker Hub теперь идут туда.К вашему актуальному вопросу, образ .NET Core SDK теперь имеет значение mcr.microsoft.com/dotnet/core/sdk, и вы устанавливаете тег для основной / вспомогательной версии, т.е. mcr.microsoft.com/dotnet/core/sdk:2.1.Или, конкретно, mcr.microsoft.com/dotnet/core/sdk:2.1.507.Однако не все ревизии могут быть доступны, поэтому, если это не сработает, просто используйте 2.1.Номер ревизии в любом случае не должен иметь значения (т. Е. В любом случае, вам, вероятно, следует всегда использовать последнюю ревизию).

...