Загрузка фикстур в django, запущенный в контейнере docker на экземпляре AWS EC2
Итак, мне нужно выполнить несколько операций над запущенным экземпляром - что-то вроде одноразовой операции. Это включает в себя загрузку фиксов на него. Структура представляет собой aws ec2 instance, на котором запущено несколько docker-контейнеров, включая контейнер django. Это контейнер docker, в который мне нужно загрузить фикстуры. Это все часть ci/cd конвейера, с базой данных postgres RDS, прокси nginx и контейнером django.
Я могу передать фикстуры по scp в экземпляр AWS EC2. Затем я могу подключиться по SSH к экземпляру EC2 и оттуда войти в запущенный контейнер (используя docker exec).
Все это прекрасно, но....
Как я могу получить доступ к фиксам, которые я загрузил на экземпляр ec2 (хост docker), из docker-контейнера?
Примечание: я знаю, что могу зафиксировать фикстуры в git, тогда они попадут в образ docker и будут легко доступны там. Возможно, я предпочту отправить их непосредственно на ec2 & управлять ими в командной строке (потому что могут потребоваться небольшие изменения в фикстурах, что означает, что мне придется запускать весь конвейер и ждать несколько минут каждый раз...)
Вы захотите прикрепить том к своему контейнеру Docker. Прикрепление тома означает, что вы предоставляете общий доступ к папке с хост-машины запущенному контейнеру Docker.
Вы можете присоединить том при запуске контейнера:
docker run -d \
--name=my-container-name \
-v /host/path:/container/path \
myimage:latest
В случае docker compose, вы можете добавить том следующим образом:
version: "3.9"
services:
myservice:
image: myimage
volumes:
- "/host/path:/container/path"