Nastavte připojení k výpisu databáze
Budete muset namontovat skládku do kontejneru, abyste k ní měli přístup. Něco takového v docker-compose.yml:
db:
volumes:
- './db_dump:/db_dump'
Vytvořte místní adresář s názvem db_dump
a umístěte db_dump.gz
soubor tam.
Spusťte kontejner databáze
Použijte POSTGRES_DB
v prostředí (jak jste uvedl ve své otázce), aby se databáze automaticky vytvořila. Spusťte db
sám o sobě, bez serveru rails.
docker-compose up -d db
Importovat data
Počkejte několik sekund, než bude databáze dostupná. Poté importujte svá data.
docker-compose exec db gunzip /db_dump/db_dump.gz
docker-compose exec db psql -U postgres -d dbname -f /db_dump/db_dump.gz
docker-compose exec db rm -f /db_dump/db_dump.gz
Můžete také jednoduše vytvořit skript pro provedení tohoto importu, vložit jej do obrázku a poté jej zavolat pomocí jediného příkazu docker-compose. Nebo můžete nechat skript vstupního bodu, aby zkontroloval, zda je přítomen soubor s výpisem paměti, a pokud ano, rozbalte jej a importujte... cokoli potřebujete.
Spusťte server rails
docker-compose up -d web
Automatizace
Pokud to děláte ručně pro přípravu nového nastavení, máte hotovo. Pokud to potřebujete automatizovat do toolchainu, můžete některé z těchto věcí provést ve skriptu. Jednoduše spusťte kontejnery samostatně, mezitím proveďte import db a použijte sleep
k pokrytí případných zpoždění při spuštění.