Попробуйте:
CMD ["sudo", "-E", "-u", "oracle", "sh", "-c", "\"$ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/startWebLogic.sh\""]
По умолчанию sudo
запускает новую среду. Чтобы sudo
сохранил среду, вам нужно передать параметр -E
.
Затем, чтобы $variables
раскрылся, вам нужно запустить его под оболочкой, чтобы они могли расширяться. Но тогда для защиты от расширения оболочки с разделением слов я думаю, что вы должны заключать в кавычки расширения переменных, таким образом, дополнительные \"
.
Может быть, это будет проще, и также сработает:
CMD ["sh", "-c", "sudo -u oracle \"$ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/startWebLogic.sh\""]
Но в docker я думаю, что лучше просто установить пользователя:
USER oracle
CMD $ORACLE_HOME/user_projects/domains/$DOMAIN_NAME/startWebLogic.sh