Загрузка фикстур в 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"
Вернуться на верх