php - 将 .env 参数替换为文件的内容
问题描述
我想在安装依赖项时将 .env 中的参数替换为文件的内容。
我在特定的 php 容器下的 docker-compose.yml 中有这个:
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 ###
那可能吗?
最好的,克里斯蒂安
解决方案
我通过导出 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
推荐阅读
- go - Golang ...字符串类型arg函数
- ios - 在标签栏控制器顶部显示视图控制器时如何使用展开转场?
- swift - URLSession POST 调用
- php - GET 请求时 PHP 的 curl_getinfo() 为空
- vba - 循环工作一次,然后“运行时错误'424':需要对象”
- python - Python函数不返回任何内容
- bootstrap-4 - Bootstrap 4.1 轮播指示器
- javascript - 尝试使用 axios 遵循 AJAX React 教程
- javascript - d3.js:SVG 条出现在 svg 区域之外
- angular - 如何编写一个与子组件具有相同标签的瘦包装器组件