#sqlite #docker #docker-compose
#sqlite #docker #docker-compose
Вопрос:
У меня есть
- сервер Flask, работающий в Docker с использованием docker-compose.
- файл sqlite хранится на хост-компьютере.
Я хочу получить доступ к файлу sqlite из образа docker с обновленным изменением файла sqlite.
Комментарии:
1. Не уверен, как выглядит ваш docker-compose.yml. Но вы можете достичь своей цели, смонтировав тома
2. поправьте меня, если я ошибаюсь, я думаю, что монтирование по объему дает вам «снимок» файла при создании образа, но не последнюю версию
3. Он будет непрерывно синхронизироваться с вашим локальным файлом DB
Ответ №1:
Если у вас есть файл на хост-компьютере, вы можете просто смонтировать этот файл внутри контейнера, используя -v
опцию. Изменения, выполненные контейнером в файле, будут видны на хосте.
Быстрое подтверждение концепции:
.
├── docker-compose.yml
└── the-file
Файл docker-compose.yml:
version: '3'
services:
the-flask:
image: python
volumes:
- ${PWD}/the-file:/mnt/the-file
command: tail -f /dev/null
Создайте, получите идентификатор контейнера, затем добавьте некоторый текст из контейнера в файл, смонтированный с хоста:
docker-compose up -d
docker exec <container-id> sh -c 'echo "Contend added from container" >> /mnt/the-file'
Файл на хосте:
cat the-file
Initial content
Contend added from container