Cum să rulezi Flyway Teams în containere
DodaTech
Updated 2025-01-15
2 min read
In this tutorial, you'll learn about Cum să rulezi Flyway Teams în containere. We cover key concepts, practical examples, and best practices.
Vei învăța cum să rulezi Flyway Teams în containere Docker, permițând migrări portabile și reproductibile în orice mediu, de la development la producție.
Problema
Instalarea manuală a Flyway pe fiecare mașină duce la diferențe de versiune și configurare între medii. Dockerizarea migrărilor asigură că același proces rulează identic pe fiecare mașină.
Modul Greșit
# Dockerfile — imagine minimă fără configurare
FROM flyway/flyway:latest
COPY migrations /flyway/sql
# Fără script de entrypoint, fără gestionare a erorilor
docker run my-flyway-image migrate
# Eroare: Nu se poate conecta la bază — variabile de mediu lipsă
Modul Corect
# Dockerfile
FROM flyway/flyway:10-alpine
COPY migrations /flyway/project/db/migration
COPY flyway.conf /flyway/conf/flyway.conf
ENTRYPOINT ["flyway"]
CMD ["migrate"]
# flyway.conf
flyway.url=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
flyway.user=${DB_USER}
flyway.password=${DB_PASSWORD}
flyway.locations=filesystem:/flyway/project/db/migration
flyway.baselineOnMigrate=true
# Construiește și rulează
docker build -t my-migrations .
docker run --rm \
-e DB_HOST=postgres \
-e DB_PORT=5432 \
-e DB_NAME=mydb \
-e DB_USER=admin \
-e DB_PASSWORD=secret \
--network my-network \
my-migrations migrate
Output:
Flyway Teams 10.0.0
Successfully applied 2 migrations (execution time 00:00.234s)
Pas cu Pas
1. Creează Dockerfile-ul
FROM flyway/flyway:10-alpine
COPY migrations /flyway/project/db/migration
COPY flyway.conf /flyway/conf/flyway.conf
2. Configurează variabilele de mediu
flyway.url=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
flyway.user=${DB_USER}
flyway.password=${DB_PASSWORD}
3. Rulează cu docker-compose
version: '3.8'
services:
db:
image: postgres:15
environment:
POSTGRES_DB: mydb
POSTGRES_PASSWORD: secret
migrate:
build: .
depends_on:
- db
environment:
DB_HOST: db
DB_PORT: 5432
DB_NAME: mydb
DB_USER: postgres
DB_PASSWORD: secret
command: migrate
docker-compose up migrate
Sfaturi de Prevenție
- Folosește tag-ul imaginii (
flyway:10-alpine), nulatest - Montează scripturile de migrare ca volum pentru dezvoltare
- Rulează containerul cu
--rmpentru a elimina containerele temporare - Folosește
depends_oncucondition: service_healthy
Greșeli Comune
- Imagine fără driver JDBC — imaginile oficiale includ driverele comune, dar pentru baze mai puțin cunoscute trebuie adăugat manual
- Rețea neconfigurată — containerul Flyway trebuie să fie în aceeași rețea cu baza de date
- Variabile de mediu lipsă — Flyway nu pornește fără
flyway.urlși credentiale - Scripturi montate greșit — calea din container trebuie să corespundă cu
flyway.locations
Întrebări Frecvente
Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu Flyway în containere pentru migrări sigure și portabile.
← Previous
Cum să configurezi Flyway Teams în CI/CD
Next →
Cum să configurezi Flyway Teams pentru dezvoltare
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro