Mój plik komponowania dokera ma trzy kontenery, web, nginx i postgres. Postgres wygląda następująco:
postgres:
container_name: postgres
restart: always
image: postgres:latest
volumes:
- ./database:/var/lib/postgresql
ports:
- "5432:5432
Moim celem jest zamontowanie woluminu odpowiadającego folderowi lokalnemu o nazwie ./databasewewnątrz kontenera postgres as /var/lib/postgres. Kiedy uruchamiam te kontenery i wstawiam dane do postgres, sprawdzam, czy /var/lib/postgres/data/base/jest pełne danych, które dodaję (w kontenerze postgres), ale w moim systemie lokalnym ./databasedostaje tylko datafolder, tzn. ./database/dataJest tworzony, ale jest pusty . Czemu?
Uwagi:
- To sugeruje, że mój powyższy plik powinien działać.
- Ta osoba korzysta z usług dokerów, co jest interesujące
AKTUALIZACJA 1
Zgodnie z sugestią Nicka zrobiłem docker inspecti znalazłem:
"Mounts": [
{
"Source": "/Users/alex/Documents/MyApp/database",
"Destination": "/var/lib/postgresql",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Name": "e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35",
"Source": "/var/lib/docker/volumes/e5bf22471215db058127109053e72e0a423d97b05a2afb4824b411322efd2c35/_data",
"Destination": "/var/lib/postgresql/data",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
Co sprawia, że wygląda na to, że dane są kradzione przez inny wolumin, którego sam nie kodowałem. Nie jestem pewien, dlaczego tak jest. Czy obraz postgres tworzy dla mnie ten wolumin? Jeśli tak, to czy jest jakiś sposób na użycie tego woluminu zamiast woluminu, który instaluję po ponownym uruchomieniu? W przeciwnym razie, czy istnieje dobry sposób na wyłączenie tego innego woluminu i użycie własnego ./database?
AKTUALIZACJA 2
Znalazłem rozwiązanie, dzięki Nickowi! (i inny przyjaciel) Odpowiedz poniżej.
from app import dbi db.create_all()od A docker runpo uruchomieniu pojemników. Nie initdbbezpośrednio z wiersza poleceń.
sudo su -i zajrzeć ./database/data. O ile mi wiadomo, nic tam nie ma.
initdbwiersz poleceń, aby zainicjować klaster bazy danych?