Sign inSign up

lzocateli/mssql-server

By lzocateli

•Updated 2 months ago

Image
0

319

lzocateli/mssql-server repository overview

⁠SQL Server 2025

Docker Hub Version Base Platforms Repository code license

SQL Server 2025 CU7 sobre Ubuntu 24.04, com inicializacao opcional e idempotente de banco, login e scripts SQL ou Bash.

⁠Referencia da imagem

ItemValor
Imagemlzocateli/mssql-server:2025-CU7-ubuntu-24.04
Imagem basemcr.microsoft.com/mssql/server:2025-CU7-ubuntu-24.04 fixada por digest
Plataformalinux/amd64
Usuario padraomssql (10001:10001)
Entry point/usr/local/bin/docker-entrypoint.sh
Dados/var/opt/mssql
Codigo-fontehttps://github.com/lzocateli/containers/tree/main/mssql-server

⁠Inicio rapido

Crie .env a partir de .env.example, substitua todas as senhas e execute:

docker compose -f mssql-server/docker-compose.yml --env-file mssql-server/.env up -d
docker compose -f mssql-server/docker-compose.yml ps

Com Docker diretamente:

docker volume create mssql-data
docker run --name mssql --detach \
  --platform linux/amd64 \
  --publish 127.0.0.1:1433:1433 \
  --env ACCEPT_EULA=Y \
  --env MSSQL_PID=Developer \
  --env-file mssql-server/.env \
  --mount type=volume,source=mssql-data,target=/var/opt/mssql \
  lzocateli/mssql-server:2025-CU7-ubuntu-24.04

⁠Configuracao

VariavelObrigatoriaSecretaPadraoDescricao
ACCEPT_EULASimNaoNenhumUse Y para aceitar o EULA da Microsoft.
MSSQL_SA_PASSWORDSimSimNenhumSenha forte do login sa.
MSSQL_PIDNaoNaodeveloper na baseEdicao licenciada do SQL Server.
MSSQL_DATABASENaoNaoNenhumBanco criado na primeira inicializacao.
MSSQL_DATABASE_COLLATENaoNaoSQL_Latin1_General_CP1_CI_AICollation do banco criado.
MSSQL_USERNaoNaoNenhumLogin criado na primeira inicializacao.
MSSQL_PASSWORDCondicionalSimNenhumObrigatoria quando MSSQL_USER for definido.

Os nomes de banco, login e collation aceitam letras ASCII, numeros e _, sem espacos. Banco e login devem iniciar por letra ou _.

O SQL Server escuta em 1433/tcp. Restrinja a publicacao a localhost ou a uma rede interna; nao exponha a porta diretamente na internet.

⁠Persistencia e inicializacao

Monte um volume gravavel em /var/opt/mssql. O usuario 10001:10001 precisa ter permissao de escrita quando for usado um bind mount.

Na primeira execucao, a imagem aguarda o SQL Server, cria os recursos declarados e executa arquivos de /docker-entrypoint-initdb.d em ordem alfabetica. Arquivos .sql rodam com sqlcmd; arquivos .sh rodam com Bash. Monte esse diretorio como somente leitura:

volumes:
  - ./initdb:/docker-entrypoint-initdb.d:ro

O marcador /var/opt/mssql/.container-init-complete so e gravado depois de todas as etapas concluirem. Alterar variaveis ou scripts depois disso nao refaz o bootstrap; use migrations para evolucao de schema.

⁠Seguranca

  • O processo roda como mssql, UID/GID 10001:10001, sem permissao 777.
  • Senhas nao fazem parte da imagem, do Compose ou dos argumentos do sqlcmd.
  • .env, backups, certificados, logs e dados persistentes ficam fora do Git e do contexto de build.
  • A edicao Developer nao e licenciada para producao. Defina um MSSQL_PID adequado e cumpra os termos da Microsoft.
  • Troque a senha de sa apos o provisionamento e, quando operacionalmente possivel, desabilite esse login.

⁠Build local

docker buildx build --check --file mssql-server/Dockerfile mssql-server
docker buildx build \
  --pull \
  --platform linux/amd64 \
  --tag lzocateli/mssql-server:2025-CU7-ubuntu-24.04 \
  --load \
  mssql-server

SQL Server em containers e suportado oficialmente apenas em hosts Linux x86-64. ARM e emulacao nao sao plataformas suportadas.

⁠Validacao

docker compose -f mssql-server/docker-compose.yml --env-file mssql-server/.env config
docker compose -f mssql-server/docker-compose.yml --env-file mssql-server/.env up -d --wait
docker compose -f mssql-server/docker-compose.yml exec sql \
  bash -c 'SQLCMDPASSWORD="$MSSQL_SA_PASSWORD" sqlcmd -S localhost -U sa -C -Q "SELECT @@VERSION" -b'

Antes da publicacao, execute tambem o gate do repositorio, a analise Trivy e a geracao de SBOM e proveniencia pelo workflow oficial.

⁠Tags e atualizacao

TagMutabilidadeUso recomendado
2025-CU7-ubuntu-24.04ImutavelDesenvolvimento e producao licenciada

Atualize entre CUs somente depois de validar backup e restore. Para rollback, restaure um backup compativel em uma instancia anterior; arquivos de banco atualizados podem nao aceitar downgrade.

⁠Operacao

Mantenha backups fora do volume principal e teste restauracoes periodicamente. Antes de remover o volume, confirme que existe um backup restauravel. Consulte logs com docker compose logs sql, sem registrar senhas ou conteudo de dados.

O health check exige a conclusao do bootstrap, conecta localmente como sa e executa SELECT 1. O periodo inicial e de 60 segundos; ajuste recursos e tempos para o ambiente.

⁠Troubleshooting

SintomaCausa provavelVerificacaoCorrecao
Container encerra no inicioEULA ou senha ausente/invalidadocker compose logs sqlCorrija .env e recrie o container.
Permissao negada em /var/opt/mssqlBind mount sem acesso para UID 10001Inspecione dono e modo no hostConceda acesso ao UID/GID 10001.
Bootstrap nao roda novamenteMarcador persistente existenteVerifique .container-init-completeUse migrations; remova dados apenas com backup e intencao explicita.
Cliente rejeita certificado localODBC 18 exige criptografiaTeste com sqlcmd -CConfigure certificado confiavel em producao.

⁠Licencas e fontes

ComponenteVersaoLicencaFonte
Conteudo original deste repositorioAtualMIThttps://github.com/lzocateli/containers
Microsoft SQL Server2025 CU7Microsoft SQL Server EULAhttps://mcr.microsoft.com/product/mssql/server/about
Ubuntu24.04Licencas dos respectivos pacoteshttps://ubuntu.com/legal/intellectual-property-policy

O badge MIT descreve apenas o conteudo original deste repositorio. SQL Server e os demais componentes de terceiros permanecem sujeitos aos termos de suas fontes. Consulte a politica de licenciamento⁠.

⁠Historico de alteracoes

  • 2025-CU7-ubuntu-24.04: atualiza para SQL Server 2025 CU7, Ubuntu 24.04 e mssql-tools18; adota execucao nao-root, health check e bootstrap idempotente.

Tag summary

Content type

Image

Digest

sha256:fbfb7cf55…

Size

603.2 MB

Last updated

2 months ago

docker pull lzocateli/mssql-server:2025-CU7-ubuntu-24.04