我在弹性beanstalk上运行我的php应用程序。无论何时,我使用git aws.push
从我的本地存储库推送更新,一个名为picture
的目录以及所有内容都将从服务器中删除。此目录的本地版本已添加到.gitignore
,因为我不想将其推送到服务器。服务器上的目录应保持不变,因为它包含上载的图像。每次推送时如何停止删除目录?
答案 0 :(得分:4)
与大多数平台即服务提供商一样,Elastic Beanstalk does not provide a persistent filesystem:
持久存储
AWS Elastic Beanstalk应用程序在没有持久本地存储的Amazon EC2实例上运行。当Amazon EC2实例终止时,不会保存本地文件系统,并且新的Amazon EC2实例将以默认文件系统启动。您应该设计应用程序以将数据存储在持久数据源中。 Amazon Web Services提供了许多可用于您的应用程序的持久性存储选项,包括
- Amazon Simple Storage Service (Amazon S3)。有关Amazon S3的更多信息,请转到documentation。
- Amazon Elastic Block Store (Amazon EBS)。有关详细信息,请转到documentation,另请参阅文章Feature Guide: Elastic Block Store。
- Amazon DynamoDB。有关更多信息,请转到documentation。有关将Amazon DynamoDB与AWS Elastic Beanstalk配合使用的示例,请参阅Example: DynamoDB, CloudWatch, and SNS。
- Amazon Relational Database Service (Amazon RDS)。有关详细信息,请转到documentation,另请参阅Amazon RDS for C# Developers。
这意味着您无法动态存储文件并期望它们能够在新部署中存活。
推荐的解决方案是使用像S3这样的云文件存储提供程序。
答案 1 :(得分:0)
只是添加,但是从我所看到的情况来看,这仅适用于var / app / current的app目录,推送更改后确实已清除。
其他任何地方的文件都没有被触及,我们使用配置文件在本地下载maxmind geo dbs,它们一直存在直到实例终止。