Мне нужно создать пакет для приложения .NET в Linux для Azure Marketplace. Приложение использует базу данных SQLite. Azure Marketplace в процессе создания предложения не отображает в образе каких-либо настраиваемых пользователей, и проверка образа завершается неудачей, если я создаю выделенного пользователя для запуска моего сервера в качестве службы systemd. Последним шагом подготовки является запуск $ sudo waagent -force -deprovision+user, который удаляет пользователя, под которым я вошел в систему.
Поскольку у меня нет выделенного пользователя для моей службы, я попробовал использовать DynamicUser=yes. Однако ограничение связано с моей базой данных SQLite. Мне нужно, чтобы она оставалась на месте или использовала существующую базу данных, если клиент ее скопировал. Динамические пользователи по умолчанию ограничены и не могут создавать и записывать файлы, а использование StateDirectory создается в каталоге /private, если он существует.
Какой вариант лучше всего выбрать? Можно ли использовать некоторых существующих пользователей (не root), например демона? Размещение сервера в /opt/myserver и базы данных в /var/lib/myserverstate с моим файлом .service, выглядящим следующим образом (с пропусками):
[Unit]
Description=My Server
After=network.target
[Service]
DynamicUser=yes
User=service_usr
WorkingDirectory=/opt/myserver/publish
StateDirectory=myserverstate
ExecStart=/usr/bin/dotnet /opt/myserver/publish/myserver.dll --dbtype:sqlite --conn:"Data Source=/var/lib/myserverstate/Local.db"
[Install]
WantedBy=multi-user.target
В системе управления идентификацией ASP.NET по умолчанию нет места для хранения секретов, и в журналы выводятся следующие предупреждения:
WARN | Using an in-memory repository. Keys will not be persisted to storage.
WARN | Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
WARN | No XML encryptor configured. Key {***-fc4f3683ad02} may be persisted to storage in unencrypted form.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ith-sqlite