---
title: "Setup do GrantID em Docker"
description: "Instalação do GrantID on-premises em Docker com a imagem lacunasoftware/grantid, suas tags e requisitos como um blob storage compartilhado."
canonical: "https://docs.lacunasoftware.com/articles/grant-id/on-premises/docker"
locale: "pt-BR"
product: "GrantID"
last_updated: "2026-10-12"
---

# Setup do GrantID em Docker

Para instalar uma instância [on-premises](https://docs.lacunasoftware.com/articles/grant-id/on-premises) do [GrantID](https://docs.lacunasoftware.com/articles/grant-id) em Docker, siga os passos abaixo. Para outras plataformas, [clique aqui](https://docs.lacunasoftware.com/articles/grant-id/on-premises#plataformas-suportadas).

Para o setup baseado em Docker, a seguinte imagem é disponibilizada no Docker Hub:

**[GrantID Docker Image](https://hub.docker.com/r/lacunasoftware/grantid)**

A imagem atualmente recomendada é a `lacunasoftware/grantid:5.5.0`

Tags móveis disponíveis:

* A tag `5` aponta para a última imagem 5.x
* A tag `stable` aponta para a última imagem estável

Esta imagem requer:

* Um **blob storage** compartilhado entre todos os containers que executam a imagem -- veja [Configuração de blob storage](https://docs.lacunasoftware.com/articles/grant-id/on-premises/blob-storage)
* Um **volume** compartilhado entre todos os containers que executam a imagem, montado em `/var/keys`, usado para armazenar as chaves de proteção de dados (data protection). Os arquivos desse volume são poucos, raramente gravados e lidos apenas na inicialização
  do container; por isso, ele pode ser qualquer volume compartilhado de baixo desempenho oferecido pelo orquestrador que você usa.

* Licença do **PKI SDK** (no formato Base64)
* Licença do **Web PKI** (formato Base64/binário) -- necessária apenas para o login com certificado
* **Entradas de DNS** criadas previamente para os [domínios mencionados na seção de planejamento](https://docs.lacunasoftware.com/articles/grant-id/on-premises#planejamento-antes-da-instalação)
* **Connection string** para um [banco de dados SQL Server ou PostgreSQL criado previamente](https://docs.lacunasoftware.com/articles/grant-id/on-premises/prepare-database)

## Configuração

O container desta imagem é configurado com variáveis de ambiente. Obtenha o [**arquivo de ambiente de exemplo**](https://cdn.lacunasoftware.com/grantid/docker/grantid.env), um
modelo para preencher as configurações da imagem.

Para preencher a configuração `Application__TempTokenPassword`, gere uma chave de 256 bits para cifrar dados sensíveis:

```sh
docker run lacunasoftware/psc:1 -- gen-enc-key
```

Para preencher as configurações `Application__SigningCertificatePfxContent` e `Application__SigningCertificatePfxPassword`, gere um arquivo PFX com um certificado autoassinado para assinar os tokens OAuth:

```sh
docker run lacunasoftware/psc:1 -- gen-cert "Your GrantID Name" SOME_PASSWORD
```

A saída será semelhante a:

```plaintext
$ docker run lacunasoftware/psc:1 -- gen-cert "Patorum ID" "1234"
PSC entrypoint invoked
Starting application

#
# PFX
#
MIIPwQ...AAA=

#
# Certificate
#
-----BEGIN CERTIFICATE-----
MIIE...
.......
.......
-----END CERTIFICATE-----

#
# Thumbprint
#
0123...
```

Copie todo o conteúdo da seção **PFX** (tudo em uma única linha) para a configuração `Application__SigningCertificatePfxContent` (no exemplo acima, `MIIPwQ...AAA=`; na prática, será
uma única linha com cerca de 5.000 caracteres) e preencha a configuração `Application__SigningCertificatePfxPassword` com a mesma senha usada no comando de geração.

```sh
Application__SigningCertificatePfxContent=MIIPwQ...AAA=
Application__SigningCertificatePfxPassword=SOME_PASS
```

Outras configurações podem ser encontradas na página [Configurações do GrantID](https://docs.lacunasoftware.com/articles/grant-id/on-premises/settings).

## Instalação

Baixe a imagem estável mais recente, obtenha o arquivo de configuração de exemplo e as variáveis de ambiente necessárias e execute o container.

> **Aviso**
>
> Comece com **apenas um container**, pois na primeira inicialização as tabelas do banco de dados são criadas (mais containers poderiam causar uma condição de corrida).
> Depois que a inicialização for concluída, você pode executar quantos containers quiser.

Em seguida, siga os passos em [Procedimento pós-instalação do GrantID](https://docs.lacunasoftware.com/articles/grant-id/on-premises/post-install) para concluir a instalação.

## Portas expostas

O GrantID é composto de três serviços, que a imagem expõe em um único container, escutando nas seguintes portas:

Serviço          | Porta padrão | Variável de ambiente para personalizar
---------------- | ------------ | --------------------------------------
Identity Service | 5010         | GRANTID_IDENTITY_SERVICE_PORT
Auth Server      | 5011         | GRANTID_AUTH_SERVER_PORT
Console          | 5012         | GRANTID_CONSOLE_PORT

> **Observação**
>
> Se você precisar de uma imagem por serviço, para ter um controle mais granular dos seus containers, entre em contato conosco.

## Roteamento

A configuração do seu ambiente deve direcionar o tráfego dos [domínios da aplicação](https://docs.lacunasoftware.com/articles/grant-id/on-premises#planejamento-antes-da-instalação) para as portas do container da seguinte forma:

Tipo de domínio | Exemplo                          | Porta de destino no container
--------------- | -------------------------------- | -----------------------------
Domínio base    | *id.yourcompany.com*             | 5011 (Auth Server)
Login           | **login**.*id.yourcompany.com*   | 5011 (Auth Server)
Console         | **console**.*id.yourcompany.com* | 5012 (Console)
API             | **api**.*id.yourcompany.com*     | 5010 (Identity Service)

## Exemplo

Em um ambiente de produção, normalmente você usaria um orquestrador de Docker para tratar questões como o roteamento e um servidor de banco de dados dedicado (ou um banco de dados oferecido como IaaS). Para fins
de teste, porém, é possível executar uma instância do GrantID com uma instância do PostgreSQL usando apenas o Docker e simular o roteamento fazendo a resolução DNS dos domínios da aplicação apontar para a interface de loopback.

Comece acrescentando as entradas abaixo ao arquivo hosts do seu sistema operacional (no Windows, *C:\Windows\System32\drivers\etc\hosts*; no Linux, */etc/hosts*) para mapear os domínios do auth server para a interface de loopback
(substitua os domínios pelos seus domínios *base* e *de login*):

```plaintext
127.0.0.1 id.yourcompany.com
127.0.0.1 login.id.yourcompany.com
```

Crie um volume para o servidor de banco de dados:

```sh
docker volume create grantid_sql
```

Inicie-o com uma senha de sua escolha (substitua `SOME_PASS` abaixo):

```sh
docker run --name grantid_sql -v grantid_sql:/var/lib/postgresql/data -p 5432:5432 -e "POSTGRES_PASSWORD=SOME_PASS" -d postgres
```

Verifique se há erros nos logs do container:

```sh
docker logs -f grantid_sql
```

Isso pode levar alguns minutos. Quando o servidor de banco de dados estiver no ar, pressione CTRL+C para sair dos logs.

Crie um volume para usar como blob storage e outro para armazenar as chaves de proteção de dados:

```sh
docker volume create grantid_data
docker volume create grantid_keys
```

Em seguida, baixe o [arquivo de ambiente de exemplo](https://cdn.lacunasoftware.com/grantid/docker/grantid.env), salve-o com o nome *grantid.env*
e preencha-o.

Na configuração da connection string, use o valor abaixo, substituindo `HOST_IP` pelo endereço IP do host e `SOME_PASS` pela
senha que você escolheu para o PostgreSQL:

```sh
ConnectionStrings__DefaultConnection=Host=HOST_IP;Database=grantid;Username=postgres;Password=SOME_PASS
ConnectionStrings__DefaultConnection_ProviderName=Postgres
```

Defina as configurações de URL da seguinte forma (substitua a URL do auth server pelo seu domínio *base*):

```sh
Application__AuthServerUrl=http://id.yourcompany.com/
Application__ConsoleUrl=http://localhost:8080/
Application__UseSsl=False
```

Agora, execute o container com o arquivo de configuração, montando o volume `grantid_data` em `/var/app` e o `grantid_keys` em `/var/keys`, e expondo a
porta do auth server do container (5011) na porta 80 do host e a porta do console do container (5012) na porta 8080 do host:

```sh
docker run --name grantid --env-file grantid.env -v grantid_data:/var/app -v grantid_keys:/var/keys -p 80:5011 -p 8080:5012 -d lacunasoftware/grantid:5.5.0
```

> **Dica**
>
> Se receber uma credencial com privilégios suficientes, o GrantID tenta criar o banco de dados de destino no servidor (que é o que acontece neste caso)

Verifique se há erros de configuração nos logs do container:

```sh
docker logs -f grantid
```

Se tudo estiver configurado corretamente, você conseguirá acessar o console do GrantID em [localhost:8080](http://localhost:8080/)

> **Observação**
>
> Lembre-se de seguir os passos em [Procedimento pós-instalação do GrantID](https://docs.lacunasoftware.com/articles/grant-id/on-premises/post-install) para concluir a instalação.

## Veja também

* [GrantID on-premises](https://docs.lacunasoftware.com/articles/grant-id/on-premises)
