Я пытаюсь установить dotnet8 на образ Amazon Linux 2023 public.ecr.aws/amazonlinux/amazonlinux:2023. После установки одна из команд, которую он пытается запустить, — «dotnet», но выдает ошибку:
/bin/sh: строка 1: dotnet: команда не найдена
Ниже приведен блок кода, который я запускаю для установки dotnet:
FROM public.ecr.aws/amazonlinux/amazonlinux:2023
RUN curl -fSL --output dotnet.tar.gz https://dotnetcli.azureedge.net/dotnet/Sdk/$DOTNET_SDK_VERSION/dotnet-sdk-$DOTNET_SDK_VERSION-linux-arm64.tar.gz \
&& echo "dotnet.tar.gz" \
&& mkdir -p /usr/share/dotnet \
&& tar -oxzf dotnet.tar.gz -C /usr/share/dotnet ./packs ./sdk ./sdk-manifests ./templates ./LICENSE.txt ./ThirdPartyNotices.txt \
&& rm dotnet.tar.gz \
&& ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
# Trigger first run experience by running arbitrary cmd
&& dotnet help
Но когда я вхожу в контейнер с помощью команды docker run и проверяю информацию о dotnet, я получаю следующую информацию:
bash-5.2# dotnet --info .NET SDK: Версия: 8.0.203 Зафиксировать: 5e1ceea679 Версия рабочей нагрузки: 8.0.200-manifests.4e94be9c
Среда выполнения: Имя ОС: amzn Версия ОС: ОС 2023 Платформа: Linux RID: linux-arm64 Базовый путь:
/var/lang/bin/sdk/8.0.203/Установленные рабочие нагрузки .NET: нет установленных рабочих нагрузок для отображения.
Хост: Версия: 8.0.3 Архитектура: Arm64 Коммит:
9f4b1f5d66Установленные SDK .NET: 8.0.203 [/var/lang/bin/sdk]
Установленные среды выполнения .NET: Microsoft.AspNetCore.App 8.0.3. [/var/lang/bin/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.3 [/var/lang/bin/shared/Microsoft.NETCore.App]Другие найденные архитектуры: Нет
Переменные среды: DOTNET_ROOT [/var/lang/bin]
Файл global.json: не найден
Подробности: https://aka.ms/dotnet/info
Скачать .NET: https://aka.ms/dotnet/download
Не уверен, чего не хватает в файле докеров. Любая помощь/вклад будет принят с благодарностью. Спасибо





Я распаковывал определенные пакеты в папку /usr/share/dotnet, вместо этого я разархивировал все файлы и папки в /usr/share/dotnet с символической ссылкой на /usr/bin/dotnet. Оно прошло успешно.