Atualização do Signer em Docker
Esta página mostra como atualizar uma instância on-premises do Signer que usa a imagem lacunasoftware/signer, em um container ou em uma stack do Docker Swarm.
Antes de atualizar
- Verifique a versão instalada. Abra
https://<seu-dominio>/api/system/info. O campoproductVersionmostra a versão. - Leia o changelog de todas as versões entre a sua e a nova. Procure as versões marcadas com alteração no modelo do banco de dados.
- Se você vai sair da versão 2.x para a 3.x, leia também Atualizando para 3.x. As imagens 3.x já trazem o ASP.NET Core Runtime 10.0.
- Atualize primeiro o ambiente de homologação. Teste o envio e a assinatura de documentos antes de atualizar a produção.
- Escolha um horário de pouco uso. Na primeira inicialização, a aplicação atualiza o banco de dados quando a versão nova tem alterações no modelo.
Use a tag com a versão exata, por exemplo lacunasoftware/signer:3.0.0. As tags 3, stable e latest mudam a
cada versão nova. Com elas, um reinício do container pode trazer uma versão que você não testou.
Se você executa mais de um container, só um deles deve atualizar o banco de dados. Reduza para um container antes de
atualizar. Outra opção: em todos os containers menos um, defina General__AutoUpdateDatabase=false e
General__ProcessBackgroundJobs=false.
Backup
- Faça backup do banco de dados. Se você usa a stack padrão, o banco fica no volume
sql. Se você usa um banco externo, faça o backup no SQL Server. - Faça backup dos arquivos: o volume
filesda stack padrão ou o Blob Storage configurado. - Guarde a chave de criptografia (
signer_encryption_key) e as variáveis de ambiente ou o arquivosigner.json.
Veja Dados persistentes.
Atualização em um container
-
Baixe a imagem da versão nova:
docker image pull lacunasoftware/signer:3.0.0 -
Pare e remova o container atual.
-
Execute um container novo com a imagem nova e as mesmas variáveis de ambiente e volumes do container anterior.
Atualização no Docker Swarm
-
Se o serviço tem mais de uma réplica, reduza para uma:
docker service scale signer_signer=1 -
No arquivo
signer-stack.yml, troque a tag da imagem do serviçosigner, por exemplo paralacunasoftware/signer:3.0.0. -
Faça o deploy da stack de novo:
docker stack deploy -c signer-stack.yml signer -
Depois que o serviço iniciar, volte ao número de réplicas que você usava.
Nos comandos acima, signer é o nome da stack. Se você fez o deploy com outro nome, troque o nome nos comandos.
Verifique a atualização
- Abra
https://<seu-dominio>/api/system/infoe verifique seproductVersionmostra a versão nova. - Acompanhe o log durante a primeira inicialização. A atualização do banco pode levar alguns minutos.
No Docker Swarm, execute
docker service logs signer_signer -f. Em um container, executedocker logs -f <container>.
Se o container não iniciar e o log mostrar PKI SDK License was not loaded successfully, a aplicação não carregou a
licença do PKI SDK (licença ausente, inválida ou vencida). Peça uma licença atualizada à Lacuna e informe-a em
PkiSuite__SdkLicense.
Se algo der errado
Se a versão nova tiver um problema, fale primeiro com o suporte da Lacuna. Se a versão nova aplicou migrações no banco de dados, voltar a tag da imagem não basta. Siga o rollback de versão e use a tag da versão anterior no passo de voltar os binários.