---
title: "Usando um banco de dados externo em Docker - Signer"
description: "Como usar um banco de dados externo no Signer em Docker, em vez do serviço interno de SQL Server do arquivo compose padrão."
canonical: "https://docs.lacunasoftware.com/articles/signer/on-premises/docker/docker-swarm/external-db"
locale: "pt-BR"
product: "Signer"
last_updated: "2026-10-12"
---

# Usando um banco de dados externo em Docker - Signer

O [arquivo compose padrão do Signer](https://cdn.lacunasoftware.com/signer/docker/signer-stack.yml) inclui um serviço interno para o banco de dados
(Microsoft SQL Server).

Em ambientes de produção, pode haver [ressalvas quanto a executar o banco de dados em Docker](https://vsupalov.com/database-in-docker/). Se preferir,
siga os passos deste artigo para usar um banco de dados externo.

Pare a stack:

Edite o arquivo compose do Docker:

Faça as seguintes alterações:

* Seção **volumes**: remova o item **sql**
* Seção **services**:
  * Remova o serviço **sql** inteiro
  * Serviço **signer**
    * Na seção **environment**, adicione os seguintes itens:
      * **SQL_HOST**: hostname do servidor de banco de dados
      * **SQL_PORT** (opcional): porta do servidor de banco de dados (se omitida, a porta 1433 é usada)
      * **SQL_DATABASE**: nome do banco de dados a ser usado
      * **SQL_USER**: nome de usuário para autenticação no servidor de banco de dados
	* Remova a seção **depends_on**

A senha deve ser adicionada como o secret *signer_sql_password*:

Faça o deploy da stack com as novas configurações:

## Connection string personalizada

O método acima usa o host, o banco de dados, o usuário e o arquivo de senha informados para montar uma connection string no seguinte formato:

```plaintext
Data Source=HOST;Initial Catalog=DATABASE;User ID=USER;Password=PASSWORD
```

Em alguns cenários a connection string pode ser mais complexa, por exemplo se o banco de dados for espelhado. Nesses casos, siga
os passos abaixo para usar uma connection string personalizada.

Edite o arquivo compose do Docker:

Faça as seguintes alterações:

* Seção **volumes**: remova o item **sql**
* Seção **secrets**: remova o item **signer_sql_password**
* Seção **services**:
  * Remova o serviço **sql** inteiro
  * Serviço **signer**
    * Na seção **secrets**, remova o item **signer_sql_password**
    * Na seção **environment**, remova todos os itens que começam com **SQL_**
	* Remova a seção **depends_on**

Edite o arquivo de configuração do Signer:

Adicione ao arquivo a seção **ConnectionStrings**, com um único item chamado `DefaultConnection`:

## Veja também

* [Instalando o Signer em Docker](https://docs.lacunasoftware.com/articles/signer/on-premises/docker/docker-swarm)
* [Habilitando SSL em Docker](https://docs.lacunasoftware.com/articles/signer/on-premises/docker/docker-swarm/enable-ssl)
* [Verificando os logs do sistema em Docker](https://docs.lacunasoftware.com/articles/signer/on-premises/docker/docker-swarm/check-logs)
* [Dados persistentes (considerações sobre backup)](https://docs.lacunasoftware.com/articles/signer/on-premises/docker/docker-swarm/persistent-data)
* [Usando uma stack com GrantID](https://docs.lacunasoftware.com/articles/signer/on-premises/docker/docker-swarm/internal-grantid)
