Мне интересно, есть ли простой способ использовать Amazon EFS (эластичная файловая система) для монтирования в качестве тома в локальной настройке docker-compose.
Причина в том, что для локальной разработки созданные тома сохраняются на моем ноутбуке - если бы я сменил машину, я не смог бы получить доступ ни к каким из этих базовых данных. Облачная NFS решила бы эту проблему, поскольку она была бы легко доступна из любого места.
Документация AWS (https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html), кажется, предлагает использовать AWS Direct Connect / VPN - есть ли способ избежать этого, открыв порт 2049 (трафик NFS) в группе безопасности, которая прослушивает все IP-адреса и применяет эту группу безопасности к вновь созданной EFS?
Вот мой docker-compose.yml:
version: "3.2"
services:
postgres_db:
container_name: "postgres"
image: "postgres:13"
ports:
- 5432:5432
volumes:
- type: volume
source: postgres_data
target: /var/lib/postgresql/data
volume:
nocopy: true
environment:
POSTGRES_USER: 'admin'
POSTGRES_PASSWORD: "password"
volumes:
postgres_data:
driver_opts:
type: "nfs"
o: "addr=xxx.xx.xx.xx,nolock,soft,rw"
device: ":/docker/example"
Я получаю следующую ошибку:
ERROR: for postgres_db Cannot start service postgres_db: error while mounting volume '/var/lib/docker/volumes/flowstate_example/_data': failed to mount local volume: mount :/docker/example:/var/lib/docker/volumes/flowstate_example/_data, data: addr=xxx.xx.xx.xx,nolock,soft: connection refused
Я интерпретирую это как то, что подключение моего ноутбука не является частью AWS EFS VPC, поэтому он не может смонтировать EFS.
Для дополнительного контекста я хочу закрепить настройку парсинга веб-страниц и сохранить объем данных в облаке, чтобы я мог подключаться к нему из любого места.