我不想将我的config / database.yml文件放在GITHUB中,而是将它放在某个地方并按照下面的方式进行符号链接
config / databse.yml - > /var/www/database.yml
在.elasticbeanstalk / 00packages.config中,我有以下内容
commands:
# install WKHTML
03_command:
command: yum install xz urw-fonts libXext openssl-devel libXrender
04_command:
command: wget http://download.gna.org/wkhtmltopdf/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
05_command:
command: tar -xJf wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
06_command:
command: cp wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
07_command:
command: cp wkhtmltox/bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage
我可以在这里添加符号链接,并且可以正常工作
答案 0 :(得分:1)
不幸的是,EB自定义配置都不允许您在部署应用程序后执行操作。在commands
运行时,您的应用仍然在/var/app/ondeck
,因此如果您在/var/app/current
下创建符号链接,则会在ondeck
重命名为时将其删除current
。
我知道的唯一解决此限制的方法是将文件放入appdeploy/post
hooks目录。在你的情况下,它看起来像这样:
<强> .ebextensions / 01symlink.config 强>
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_create_symlink.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
ln -sf /var/www/database.yml /var/app/current/config/database.yml
或者,在部署期间,您可以使用commands
条目<{1}}将文件从/var/www
复制到/var/app/ondeck
。
答案 1 :(得分:0)
我能够使用ConfigureServices
和一个相对路径创建符号链接,该路径默认是您应用的根目录。尽管container_commands
目录不存在,但是您可以创建一个符号链接,部署完成后它将被移动到/var/app/current
。例如:
/var/app/current
答案 2 :(得分:0)
一种更好,更简单的解决方案是将<?php
namespace App\Notifications;
use App\Contact;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
class SendContactNotification extends Notification implements ShouldQueue
{
use Queueable;
protected $contact;
/**
* Create a new notification instance.
*
* @param $contact
*/
public function __construct(Contact $contact)
{
$this->contact = $contact;
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->line($this->contact->name)
->line($this->contact->email)
->line($this->contact->message);
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
环境变量用于configure the database connection。例如,Heroku就是这样“神奇地”将您的应用程序连接到由其postgres插件创建的数据库。
例如:
DATABASE_URL
只需在postgresql://somehost/some_database?username=foo&password=bar
中保留最低要求:
database.yml
这使得签入版本控制非常安全。
然后通过environmental properties on AWS设置环境变量。