用文件内容替换.env参数

时间:2018-07-03 11:10:47

标签: php symfony environment-variables

在安装依赖项时,我想用文件内容替换.env中的参数。

我已经在特定的php-container下的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

现在,在运行作曲家时,应将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 ###

有可能吗?

最好, 基督徒

1 个答案:

答案 0 :(得分:0)

我只是通过导出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