Как предотвратить замену определенных папок при каждом развертывании?
Рассмотрим структуру каталогов ниже:
-- /.ebextensions
-- /app
-- /database
-- /public
---- /css
---- /js
---- /images
Я использую AWS CodeCommit и EB CLI для своего приложения PHP и каждый раз, когда я запускаю eb deploy
эти файлы & каталоги заменяются, поэтому я хочу исключить /public/images
каталог, так что предыдущие изображения, которые были загружены, все еще будут там после развертывания более новой версии.
Я копался в их документации всю неделю, но не могу найти никакого возможного решения. Возможно ли это с Elastic Beanstalk? Или любые альтернативные предложения для развертывания в AWS будут очень благодарны. Заранее спасибо!
Создать .ebignore
файл и список всех файлов и каталогов там. Если нет .ebignore
файл будет использовать .gitignore
исключить файлы из развертывания.
Я все еще не думаю, что это решит проблему, так как папка с изображениями все равно будет удалена. Я бы посоветовал вам использовать S3 Bucket и загружать / получать все изображения оттуда, чтобы у вас не было проблем при развертывании.
Обратите внимание, что если вы загружаете изображение, когда на момент загрузки изображения имеется 3 ec2, изображение будет загружено только на один сервер, если вы не синхронизируете ec2 при каждой загрузке. И это приведет к тому, что некоторые пользователи получат изображение 404, не найденное, в то время как другие смогут его увидеть.
Вы также можете взглянуть на тома EBS, чтобы попытаться добиться постоянного хранения с помощью эластичного бобового стебля: https://aws.amazon.com/ebs/
Других решений пока нет …