Um setup Docker pronto para usar com SQL Server 2022 e banco de dados AdventureWorks2022.
O projeto cria um ambiente de desenvolvimento com SQL Server 2022 (Developer Edition) e restaura o banco de dados AdventureWorks2022 usando Docker.
A automação irá fazer:
- Construir uma imagem Docker a partir da imagem oficial
mcr.microsoft.com/mssql/server:2022-latest. - Iniciar o SQL Server dentro do container.
- Baixar e restaurar o banco de dados
AdventureWorks2022na primeira vez que for executado. - Persistir os dados do banco em um volume Docker, garantindo que nenhuma informação seja perdida ao reiniciar o container.
O resultado é um ambiente SQL Server pronto para uso, sem a necessidade de instalação ou configuração manual.
Este projeto foi criado para o uso em desenvolvimento, testes e para fins de estudos.
- Docker e Docker Compose instalados
- Pelo menos 4GB de memória disponível
- Conexão com internet (para baixar o arquivo .bak do AdventureWorks)
git clone https://github.com/cesartomita/sql-server-dev-docker
cd sql-server-dev-docker
Copie o arquivo .env.example para .env:
Copy-Item .env.example .envdocker compose up --buildO SQL Server levará alguns minutos para iniciar e restaurar o banco. Quando ver a mensagem abaixo, tudo está pronto:
╔═══════════════════════════════════════════════════════════════╗
║ SQL Server e banco de dados AdventureWorks2022 prontos! ║
╚═══════════════════════════════════════════════════════════════╝
Credenciais padrão para a conexão:
| Campo | Valor |
|---|---|
| Servidor | localhost,1433 |
| Usuário | sa |
| Senha | YourStrongPassword123! |
| Banco de dados | AdventureWorks2022 |
Os valores são configuráveis no arquivo .env.
Exemplo de conexão no SQL Server Management Studio:
Para parar o container, use o comando abaixo:
docker compose downPara remover os volumes de dados também:
docker compose down -v| Configuração | Valor |
|---|---|
| Edição | Developer (todas as features) |
| Idioma | 1046 (Português BR) |
| Memória | 4GB |
| CPU | 2 cores |
| Namespace | sqlserver |
| Rede | Bridge customizada |
| Volumes | Separados (dados, backup, logs) |
| Reinicialização | Automática (unless-stopped) |
| Health check | 90 segundos |
| Configuração | Variável | Valor Atual | Descrição |
|---|---|---|---|
| Senha do SA | MSSQL_SA_PASSWORD |
YourStrongPassword123! |
Senha do usuário administrador (sa) do SQL Server |
| Porta de acesso | MSSQL_CONTAINER_PORT |
1433 |
Porta para conexão ao SQL Server (padrão: 1433) |
| Nome do banco | DB_NAME |
AdventureWorks2022 |
Nome do banco de dados a ser criado |
| Memória máxima | CONTAINER_MEMORY |
4g |
Limite máximo de memória do container |
| Limite de CPU | CONTAINER_CPUS |
2 |
Número de cores disponíveis |
| Nome do container | CONTAINER_NAME |
sqlserver-aw |
Nome identificador do container Docker |
| Edição do SQL Server | MSSQL_PID |
Developer |
Developer (libera features completas) |
| Idioma | MSSQL_LCID |
1046 |
1046 = Português Brasil |
Os dados são persistidos em volumes Docker:
- sqldata - Arquivos de dados (.mdf)
- sqlbackup - Arquivo de backup (.bak) do AdventureWorks
- sqllog - Arquivos de log (.ldf)
