https://github.com/saulotarsobc/pg-bkp-restore
Essa imagem Docker foi projetada para realizar backup e restauração de bancos de dados PostgreSQL de forma simples e eficiente. A automação é feita através de um script que utiliza pg_dump e pg_restore, com suporte tanto para ambientes de produção quanto de desenvolvimento.
https://github.com/saulotarsobc/pg-bkp-restore
backup docker job postgresql task ubuntu
Last synced: about 2 months ago
JSON representation
Essa imagem Docker foi projetada para realizar backup e restauração de bancos de dados PostgreSQL de forma simples e eficiente. A automação é feita através de um script que utiliza pg_dump e pg_restore, com suporte tanto para ambientes de produção quanto de desenvolvimento.
- Host: GitHub
- URL: https://github.com/saulotarsobc/pg-bkp-restore
- Owner: saulotarsobc
- Created: 2025-01-28T22:55:00.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-02-18T23:33:44.000Z (over 1 year ago)
- Last Synced: 2025-02-19T00:27:55.270Z (over 1 year ago)
- Topics: backup, docker, job, postgresql, task, ubuntu
- Language: PowerShell
- Homepage: https://hub.docker.com/repository/docker/saulotarsobc/pg-bkp-restore/general
- Size: 14.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 📦 pg-bkp-restore: Backup e Restauração de PostgreSQL com Docker
[](https://github.com/saulotarsobc/pg-bkp-restore/stargazers)
[](https://github.com/saulotarsobc/pg-bkp-restore/issues)
[](https://github.com/saulotarsobc/pg-bkp-restore/network)
[](https://github.com/saulotarsobc/pg-bkp-restore/commits)
## 📌 Visão Geral
Esta imagem Docker facilita **backup** e **restauração** de bancos de dados PostgreSQL de maneira automatizada.
Ela utiliza `pg_dump` para criar backups e `pg_restore` para restauração.
### 🔥 Funcionalidades
✔️ **Backup automático** com `pg_dump`
✔️ **Restauração automatizada** com `pg_restore`
✔️ **Configuração via variáveis de ambiente**
✔️ **Persistência dos arquivos de backup** com volumes Docker
---
## 🚀 Como Usar
### 🔧 Pré-requisitos
- Docker instalado em seu ambiente
- Banco de dados PostgreSQL configurado
---
### 🛠️ Configuração com `docker-compose`
Crie um arquivo **docker-compose.yaml** e adicione:
```yaml
services:
pg-bkp-restore:
image: saulotarsobc/pg-bkp-restore:latest
container_name: pg-bkp-restore
restart: no
volumes:
- ./data/files:/files
environment:
- SRC_DB_HOST=my-database.com.br
- SRC_DB_PORT=5435
- SRC_DB_USER=postgres
- SRC_DB_PASS=superPassword
- SRC_DB_NAME=my-db
- DEST_DB_HOST=my-another-database.com.br
- DEST_DB_PORT=5432
- DEST_DB_USER=postgres
- DEST_DB_PASS=superPassword
- DEST_DB_NAME=my-another-db
- DO_BACKUP=1 # 1 = Backup ativo, 0 = Desativado
- DO_RESTORE=1 # 1 = Restauração ativa, 0 = Desativado
```
Após criar o arquivo, inicie o serviço:
```bash
docker-compose up -d
```
---
### ▶️ Execução Manual
Você também pode rodar o container sem `docker-compose`:
```bash
docker run -v $(pwd)/data/files:/files \
-e SRC_DB_HOST=my-database.com.br \
-e SRC_DB_PORT=5435 \
-e SRC_DB_USER=postgres \
-e SRC_DB_PASS=superPassword \
-e SRC_DB_NAME=my-db \
-e DEST_DB_HOST=my-another-database.com.br \
-e DEST_DB_PORT=5432 \
-e DEST_DB_USER=postgres \
-e DEST_DB_PASS=superPassword \
-e DEST_DB_NAME=my-another-db \
-e DO_BACKUP=1 \
-e DO_RESTORE=1 \
saulotarsobc/pg-bkp-restore:latest
```
---
## 🌍 Variáveis de Ambiente
| Variável | Descrição | Exemplo |
| -------------- | ----------------------------------- | ---------------------------- |
| `SRC_DB_HOST` | Host do banco de origem | `my-database.com.br` |
| `SRC_DB_PORT` | Porta do banco de origem | `5435` |
| `SRC_DB_USER` | Usuário do banco de origem | `postgres` |
| `SRC_DB_PASS` | Senha do banco de origem | `superPassword` |
| `SRC_DB_NAME` | Nome do banco de origem | `my-db` |
| `DEST_DB_HOST` | Host do banco de destino | `my-another-database.com.br` |
| `DEST_DB_PORT` | Porta do banco de destino | `5432` |
| `DEST_DB_USER` | Usuário do banco de destino | `postgres` |
| `DEST_DB_PASS` | Senha do banco de destino | `superPassword` |
| `DEST_DB_NAME` | Nome do banco de destino | `my-another-db` |
| `DO_BACKUP` | Ativar backup (1: Sim, 0: Não) | `1` |
| `DO_RESTORE` | Ativar restauração (1: Sim, 0: Não) | `1` |
---
## 📂 Estrutura do Projeto
- **`Dockerfile`** → Configuração da imagem Docker
- **`script.sh`** → Script de backup/restauração
- **`docker-compose.yaml`** → Configuração para `docker-compose`
- **`/files`** → Diretório para armazenar backups
---
## 🔄 Como Funciona
1️⃣ Se `DO_BACKUP=1`, o container cria um **backup** usando `pg_dump`.
2️⃣ Se `DO_RESTORE=1`, o container **restaura** um backup existente com `pg_restore`.
3️⃣ Os arquivos de backup são armazenados no diretório `/files`.
---
## 📝 Licença
Este projeto é distribuído sob a licença **MIT**.
🔗 Contribua ou reporte problemas no repositório oficial:
[👉 GitHub - pg-bkp-restore](https://github.com/saulotarsobc/pg-bkp-restore)
🚀 **Happy coding!** 🚀