Запуск приложения NET 6.0 в контейнере Web-сервер-КС 3.1.24

Рассмотрим запуск NEXT 23.2.x (Net 6.0) в контейнере Web-сервер-КС 3.1.24 (порт 443). Предполагается, что приложение уже установлено (обновлено с 23.1), и оно не запускается. Ошибка вида:

It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '6.0.0' was not found.
- The following frameworks were found:
3.1.24 at [/opt/.dotnet/shared/Microsoft.NETCore.App]

Инструкция рекомендуется как временное решение:

  1. Узнайте kestrel-порт приложения "Бюджет-NEXT" версии 23.2.x в контейнере Web-сервер-КС 3.1.24 порт веб-сервера 443 (wsks-3.1.24_443).

    bash /opt/wsks-3.1.24_443/ctl/ws_info.sh

    В нашем случае kestrel-порт - 54439:

    wBKS      54439     bnext                 /opt/wsks-3.1.24_443/www/html/wsks_54439            Бюджет-NEXT                     Stop
  2. Скачайте aspnetcore-runtime-6.0.9-linux-x64.tar.gz и распакуйте в /opt/.dotnet6.

    wget -O /opt/aspnetcore-runtime-6.0.9-linux-x64.tar.gz https://keysystems.ru/files/web/Linux/netcore/aspnetcore-runtime-6.0.9-linux-x64.tar.gz --no-check-certificate
    mkdir -p /opt/.dotnet6 && tar -C /opt/.dotnet6 -xvf /opt/aspnetcore-runtime-6.0.9-linux-x64.tar.gz
  3. Скопируйте /opt/.dotnet6 в контейнер wsks-3.1.24_443.

    docker cp /opt/.dotnet6 wsks-3.1.24_443:/opt/
  4. Отредактируйте bash-скрипт запуска приложения "Бюджет-NEXT" (kestrel-порт 54439). Для остальных приложений Net 6 потребуется только правка соответствующего bash-скрипта.

    nano /opt/wsks-3.1.24_443/ctl/app/54439_app.sh

    cmdstart="/opt/.dotnet6/dotnet /var/www/html/${app_dir}/${startdll}" cmdstop="/opt/.dotnet6/dotnet /var/www/html/${app_dir}/${startdll}"

  5. Подправьте файл /opt/wsks-3.1.24_443/ctl/ws_ctlapp.sh.

    sed -i 's/\/opt\/.dotnet\/dotnet/dotnet/g' /opt/wsks-3.1.24_443/ctl/ws_ctlapp.sh
  6. Перезапустите контейнер.

    systemctl restart wsks-3.1.24_443
  7. Проверьте статус проблемного приложения.

    bash /opt/wsks-3.1.24_443/ctl/ws_info.sh