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. Сборка локально и запуск через сгенерированные скрипты
  2. Упакуйте ту же сгенерированную структуру проекта, разверните ее и запустите оттуда

1 ответ

Мое текущее решение - предоставить профиль Maven. Если local профиль установлен, свойство пустое и run.as.user.envar не установлен, поэтому стартовый скрипт запускается под текущим пользователем.

Если профиль не установлен, устанавливается профиль по умолчанию, и это задает производственного пользователя, поэтому его невозможно запустить локально, но вы можете запустить его на сервере.

Не 100% но работает.

Другие вопросы по тегам