Запуск приложения NET 3.1 в контейнере WEB-Сервер-КС 6.0.9 Debian12
Данная методика касается контейнера wsks-6.0.9 с операционной системой Debian GNU/Linux 11(в версии старше июня 2024) и Debian GNU/Linux 12.
Команда для просмотра информации об операционной системе
docker exec wsks-6.0.9_443 bash -c "cat /etc/os-release"
Проблема
.NET Core 3.1 не работает с библиотекой icu выше 71 версии. Приложения возвращают ошибку вида: Couldn't find a valid ICU package installed on the system
.
Без libicu ("System.Globalization.Invariant": true) приложение не может получить доступ к данным языка и региональных параметров. В виду этого, например, приложение «Сервис БКС» возвращает дату в виде MMDDYY.
Узнать версию ICU в контейнере можно с помощью команды:
docker exec wsks-6.0.9_443 bash -c "apt list --installed | grep icu"
1. Разверните отдельный контейнер wsks-3.1.24 без http (no_http)
bash /opt/dks-wsks-3.1.24/install.sh -ws "no_http" -p "5467" -cs "docker" -pp "9099"
А затем установите приложения .NET Core 3.
2. Пропишите proxypass
В контейнере wsks-6.0.9 с развернутыми приложениями под .NET Core 6 пропишите proxypass-ы на нужные приложения в контейнере wsks-3.1.24.
nano /opt/wsks-6.0.9_443/conf.ks/vhost.ks/54670_ks.conf
rewrite ^/smss$ /smss/;
location ~ ^/smss(/.*) {
proxy_pass http://127.0.0.1:54670;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host:$server_port;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1800;
proxy_connect_timeout 1800;
proxy_send_timeout 1800;
proxy_buffer_size 64k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 64k;
}
где smss
- виртуальный каталог приложения, а 54670
- кестрел-порт приложения, которое нужно опубликовать.
Измените владельца и группу файла 54670_ks.conf
с помощью команды:
chown root:root /opt/wsks-6.0.9_443/conf.ks/vhost.ks/54670_ks.conf
Измените права доступа к файлу 54670_ks.conf
с помощью команды:
chmod 644 /opt/wsks-6.0.9_443/conf.ks/vhost.ks/54670_ks.conf
3. Перезапустите web-сервер wsks-6.0.9.
systemctl restart wsks-6.0.9_443
systemctl status wsks-6.0.9_443