我有一个带有Dotenv的Rails 4应用程序来读取文件.env
中的变量。
我设置了一些变量,以便让mysql用户使用rails应用程序中的"root“以外的用户,例如:
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/app/myapp/
我有三个问题:
.env
文件的最佳位置是哪里?现在,我把它放在/home/myuser/apps/myapp/
目录中。发布于 2017-01-10 07:38:38
在生产环境中,我认为您根本不应该使用.env
。
也许最好把ENV车放进去:
/etc/environment
通过这样编写变量:
export ENV_VARIABLE=value
发布于 2017-03-27 19:17:30
如果有人在这方面仍有问题,下面是我的.env
如何在生产中与Capistrano 3.5+一起工作:
在生产中将.env.production
添加到/shared
目录。然后,在部署脚本中,使用Capistrano的append
命令从/shared
目录加载链接文件,如下所示:
append :linked_files, ".env.production"
运行标准部署(cap production deploy
)
您可以测试是否通过在生产模式(rails c p
)中从/current
目录中启动rails控制台来附加env。
https://stackoverflow.com/questions/41572037
复制