gpt4 book ai didi

ruby-on-rails - Rails 4、Capistrano 3 和 Dotenv - 如何使用服务器端 .env 文件进行部署

转载 作者:行者123 更新时间:2023-12-04 06:07:34 24 4
gpt4 key购买 nike

我有一个带有 Dotenv gem 的 Rails 4 应用程序,可以从文件中读取变量 .env .

我设置了一些变量,以便为我的 rails 应用程序设置一个除“root”以外的 mysql 用户,例如:

MYSQL_ROOT_USER='rootuser'
MYSQL_ROOT_PASSWORD='rootpassword'
APP_DATABASE_USER='mydbuser'
APP_DATABASE_PASSWORD='userpassword'

我还创建了一个 bash 脚本来在 scripts/database_setup.bash 下创建 mysql 用户。
#!/bin/bash
source ../.env
# creates the user
mysql -u${MYSQL_ROOT_USER} --password="${MYSQL_ROOT_PASSWORD}" -e "CREATE USER '${APP_DATABASE_USER}'@'localhost' IDENTIFIED BY '${APP_DATABASE_PASSWORD}';"
# grants permission
mysql -u${MYSQL_ROOT_USER} --password="${MYSQL_ROOT_PASSWORD}" -e "GRANT ALL PRIVILEGES ON \`myapp\_%\`.* TO '${APP_DATABASE_USER}'@'localhost';"

在服务器端,Capistrano 部署到`/home/myuser/apps/myapp/

我有三个问题:
  • 我的服务器端放在哪里最好.env文件?现在我把它放在 /home/myuser/apps/myapp/目录。
  • 如何告诉 Capistrano 将其复制到 Rails 根目录?
  • 如何在运行迁移之前告诉 Capistrano 执行我的 bash 脚本?
  • 最佳答案

    在生产环境中我认为你不应该使用 .env根本。

    可能最好将 ENV 变量放入:
    /etc/environment
    通过像这样编写变量:
    export ENV_VARIABLE=value

    关于ruby-on-rails - Rails 4、Capistrano 3 和 Dotenv - 如何使用服务器端 .env 文件进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41572037/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com