Я хочу заменить параметр в моем .env содержимым файла при установке зависимостей.
У меня это в моем docker-compose.yml под определенным php-контейнером:
command:
- /bin/sh
- -c
- |
date +%s | sha256sum | base64 | head -c 32 > passphrase.txt
openssl genrsa -out config/jwt/private.pem -aes256 -passout file:passphrase.txt 4096
openssl rsa -passin file:passphrase.txt -pubout -in config/jwt/private.pem -out config/jwt/public.pem
composer install
php bin/console --no-interaction doctrine:migrations:migrate
Теперь, когда composer запускается, параметр JWT_PASSPHRASE должен быть заменен содержимым passphrase.txt:
###> lexik/jwt-authentication-bundle ###
# Key paths should be relative to the project directory
JWT_PRIVATE_KEY_PATH=config/jwt/private.pem
JWT_PUBLIC_KEY_PATH=config/jwt/public.pem
JWT_PASSPHRASE=???
JWT_TOKEN_TTL=3600
###< lexik/jwt-authentication-bundle ###
Это возможно?
Лучший, Христианин
Да, было бы решение. И как это заменить?
Удалите command, добавьте entrypoint. Довольно просто.
Парень, ты понятия не имеешь, как выглядит моя среда или как настроены мои контейнеры, так что перестань говорить ерунду. Использование точки входа отменяет точку входа по умолчанию для изображения, которое я использую, а это то, что я не могу сделать.






Я решил это, просто экспортировав JWT PASSPHRASE. Мне не нужно записывать кодовую фразу в файл.
export JWT_PASSPHRASE=$(date +%s | sha256sum | base64 | head -c 32)
openssl genrsa -out config/jwt/private.pem -aes256 -passout pass:${JWT_PASSPHRASE}
openssl rsa -passin pass:${JWT_PASSPHRASE} -pubout -in ./config/jwt/private.pem -out ./config/jwt/public.pem
Да, отбросьте команду и используйте сценарий пользовательской точки входа.