www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Веб-приложение для контейнеров с приложением Dockerlized ASP.NET с настройками пользователя

Дата публикации Oct 3, 2019

Этот пост о небольших советах по настройке контейнера ASP.NET с пользователем.

Многие образы докеров все еще работают на root. Тем не менее, вы должны знать, насколько это опасно. Если вы не знаете, я рекомендую посмотреть эту заметку.

Давайте настроим ваше контейнерное приложение ASP.NET для пользователя без полномочий root.

Dockerfile

Вам нужно создать пользователя / группу на вашем докере. затем запустите в качестве целевого пользователя.

RUN groupadd -r devsecops && useradd --no-log-init -r -g devsecops devsecops
RUN mkdir /home/devsecops
RUN chown -R devsecops /app
RUN chown -R devsecops /home/devsecops
:
USER devsecops

Номер порта

Так как порт 80 требует root. Измените номер порта. У вас есть несколько способов сделать это. Я просто использовалASPNETCORE_URLS,

ENV ASPNETCORE_URLS=http://+:8080

ПРИМЕЧАНИЕ. Не используйте https здесь. Веб-приложение заботится о сертификате сервера для https.

Настройка веб-приложения для контейнеров

Вам нужно изменить номер порта для него.

ДобавлятьWEBSITES_PORTв качестве AppSettings. Если вы используете Azure Cli, вы можете сделать это так.

az webapp config appsettings set --resource-group $resourceGroupName --name $webAppName --settings WEBSITES_PORT=8080

Это оно.

Это образец Dockerfile.

Файл Docker для примера пользовательских настроек

Вы не можете выполнить это действие в данный момент. Вы вошли в другую вкладку или окно. Вы вышли на другой вкладке или ...

gist.github.com

Сообщения об ошибках

Конфигурация проста, однако, вы можете столкнуться с некоторыми проблемами.

WebApp для контейнера UnauthorizedAccessException: доступ к пути «/home/devsecops/ASP.NET/DataProtection-Keys» запрещен.

Ключи DataProtection будут созданы в домашнем каталоге. Вам необходимо создать домашний каталог для целевого пользователя.

System.InvalidOperationException: невозможно настроить конечную точку HTTPS. Не указан сертификат сервера, и сертификат разработчика по умолчанию не найден.
Для создания сертификата разработчика запустите «dotnet dev-certs https». Чтобы доверять сертификату (только для Windows и MacOS), запустите «dotnet dev-certs https - trust».

Вы можете настроить переменные среды ASPNETCORE_URLS с помощьюhttpsТребуется сертификат. Команда dotnet dev-certs требует dotnet sdk. Вы могли бы сделать это. Тем не менее, веб-приложение для контейнеров заботится о https. Так что нам не нужноhttpsустановка внутри контейнера.

Следующий шаг

Следующей проблемой может быть настройка демона SSH для контейнера. (ПРИМЕЧАНИЕ. Веб-приложение для контейнеров имеет особую архитектуру. Обычно использование SSH-демона в контейнере является плохой практикой. Веб-приложение для контейнеров - нет.) Нам нужно запустить демон с пользователем без полномочий root и изменить конфигурацию ssh. Я не тестировал, поэтому хотел бы попробовать в следующий раз.

Можно ли запустить sshd как обычный пользователь?

Я намерен запустить второй экземпляр sshd на непривилегированном порту (например, 2222) с моим собственным файлом конфигурации ...

serverfault.com

Настройка пользовательского контейнера - служба приложений Azure

В этой статье показано, как настроить собственный контейнер Linux для запуска в службе приложений Azure. Это руководство содержит ключевые…

docs.microsoft.com

Ресурсы

Как изменить номер порта для основного приложения Asp.Net?

Спасибо за ответ на Stack Overflow! Пожалуйста, обязательно ответьте на вопрос. Предоставить детали и поделиться ...

stackoverflow.com

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map