ci/cd. Проект на Djnago.
У меня есть логика на создание файла, который на данный момент сохраняется в папке, указаной в модели.
Сама проблема, при каждом новом деплое, у меня пересоздаётся контейнер и следовательно файлы нужно создавать заново. Как можно исправить этот момент?
Код :
deploy-job:
tags:
- vm-sheller
stage: deploy
before_script:
- chmod 400 $SSH_KEY
script:
- ssh -o StrictHostKeyChecking=no -i «Подключение к серверу по SSH»
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY &&
docker stop prod_container &&
docker rm prod_container &&
docker run -d -p 5000:8000 --name prod_container $CONTAINER_IMAGE"
- echo "Успешное подключение к prod-серверу"
only:
- master
cloud native - не хранить Стейт в файле, хранить в базе. Поможет в будущем при масштабировании. А вообще можно хранить файл в volume, который подключается к контейнеру,
Не, там просто есть функционал, который создаёт файлы и они лежат в контейнере, как можно реализовать так, чтобы была папка на серваке, в которую бы они копировались и при каждом деплои стягивались оттуда?
Плохой функционал, надо переделать. Хранить в базе или в S3 Ну или тоорное решение - хранить файлы в volume, которое нужно будет переделывать в будущем, в случае если понадобится масштабирование и отказоустойвость. Кто не передылвает, тот страдает с кластерными фс
Т.е. просто переписать код, чтобы экземпляры файлов хранились в бд, и оттуда их стягивать?
Ну например, ну предпочтительнее S3 совместимое хранилищем
Обсуждают сегодня