Appassembler `run.as.user.envvar` при локальном запуске
Я использую appassembler
плагин для успешной генерации структуры моего приложения. Потому что мое приложение запускается с init.d
Скрипт я изменил конфигурацию, так что приложение работает под serveruser
скорее, чем root
:
<generatorConfigurations>
<generatorConfiguration>
<property>
<name>run.as.user.envvar</name>
<value>serveruser</value> <-- Here the user is set -->
</property>
</configuration>
</generatorConfiguration>
</generatorConfigurations>
Это прекрасно работает при развертывании на сервере, но я хочу иметь возможность запускать приложение локально после запуска mvn clean package
, И в этом случае он пытается su
(переключить пользователя) на serveruser
который не существует на моей локальной машине. Есть ли лучшая практика вокруг этого?
Конечная цель - уметь:
- Сборка локально и запуск через сгенерированные скрипты
- Упакуйте ту же сгенерированную структуру проекта, разверните ее и запустите оттуда
1 ответ
Мое текущее решение - предоставить профиль Maven. Если local
профиль установлен, свойство пустое и run.as.user.envar
не установлен, поэтому стартовый скрипт запускается под текущим пользователем.
Если профиль не установлен, устанавливается профиль по умолчанию, и это задает производственного пользователя, поэтому его невозможно запустить локально, но вы можете запустить его на сервере.
Не 100% но работает.