Como implementar o DSpace em um WebApp Container no Azure

O que é o DSpace?

DSpace é um software opensource tipicamente usado para criar repositórios de acesso público para conteúdo digital acadêmico. Enquanto ele possui alguns recursos que se sobrepõem com recursos de sistemas de gerenciamento de conteúdo, ele atende a uma necessidade específica de sistema de arquivos digitais, focado no armazenamento de longo prazo, acesso e preservação de conteúdo digital.

Neste artigo, vamos fazer o setup baseado em uma imagem docker oficial do Ubuntu e usando o Tomcat para rodar o DSpace conforme as instruções do guia de instalação.

Utilização

O DSpace utiliza o PostgreSQL como banco de dados. Neste artigo, iremos utilizar o Azure Database para PostgreSQL como um banco de dados externo, ao invés de utilizar uma imagem Docker com o PostgreSQL.

PostgreSQL como Serviço

Primeiro, precisamos criar o Azure Database para PostgreSQL. Eu estou usando o Azure CLI para completar os passos descritos em https://docs.microsoft.com/en-us/azure/postgresql/quickstart-create-server-database-azure-cli

Criando o grupo de recursos

Adicionando a extensão atualizada do PostgreSQL

Adicione a extensão atualizada de gerenciamento do Azure Database para PostgreSQL usando o seguinte comando:

Criando o “PostgreSQL as a Service” no Azure

Criando a regra de firewall no Network Security Group

Criando o database e instalando a extensão pgcrypto:

O DSpace requer a extensão “pgcrypto” instalada no banco de dados. Então vamos criar o banco de dados e instalar esta extensão. Aqui, estou usando o psql para fazer isto:

Build da imagem

Clone do repositório

Faça o clone do meu repositório do DSpace no github:

Faça alguns pequenos ajustes

Para construir a imagem Docker, você precisa ajustar o arquivo local.cfg na linha 91. Você precisa alterar o endereço do servidor, nome de usuário e senha pelos parâmetros do PostgreSQL que você criou nos passos anteriores.

Após realizar as alterações, a linha 91 do arquivo config/local.cfg deverá estar similar a esta (porém com os seus dados ):

Criando o build da nossa imagem

Colocando a nossa imagem para rodar

Depois de alguns segundos, as interfaces do DSpace estarão acessíveis através dos endereços abaixo:

Feito isso, já validamos o nosso setup rodando localmente apontando para o Azure Database para PostgreSQL. Agora no próximo passo vamos configurar no Azure Webapp Container.

Executando o DSpace no Azure Webapp Container

Esta é a melhor parte! Se você deseja rodar o Dspace sem ter que gerenciar uma máquina virtual e todos os esforços envolvidos em um ambiente IaaS me deixe apresentar à você o Azure Webapp Container. Ele irá permitir que você roda o DSpace usando containers Docker em um ambiente PaaS.

Preparando a imagem

Primeiro salve a imagem que já temos como uma nova imagem. Para isto, você precisa encontrar o container ID (usando o comando docker ps) e então fazer o commit usando um novo nome de imagem:

Envie a nova imagem para o repositório

Uma vez que já temos uma nova imagem, com todos os ajustes necessários realizados, vamos enviá-la ao Docker Hub:

Observação: Caso você não possua uma conta no Docker Hub, basta acessar https://hub.docker.com/ e criar uma gratuitamente. Você também pode usar o Azure Container Registry para armazenar suas imagens.

Setup do Azure Webapp Container

Faça a criação do serviço do Azure Webapp Container e aponte para a imagem Docker no seu repositório do Docker Hub conforme abaixo:

E certifique-se de ter as seguintes variáveis configuradas:

Finalizando

Em alguns minutos, teremos o DSpace rodando no Azure Webapp Container com Azure Database para PostreSQL. Você pode validar o funcionamento acessando através de uma das interfaces disponíveis:

JSPUI

XMLUI

OAI

REST API

Até a próxima!