Instalando Nextcloud com Docker

Olá, seja muito bem vindo ao blog do ideatip, eu sou o Gabriel Gouvea e nesse post vou mostrar, de forma simples e rápida, como instalar o Nextcloud com o Docker e para essa instalação vamos usar o MySQL que também será em forma de um contêiner.

Pré requisitos

  • Docker funcionando na sua maquina
  • Internet
  • 10 Minutos de tempo livre ou menos 🙂

Instalando o MySQL com o Docker

Antes de executarmos o conatiner do MySQL vamos iniciar criando uma network para o nosso projeto, para isso basta digitar o seguinte comando:

sudo docker network create ideatip-services

Com esse comando criamos uma nova network chamada de “ideatip-services”. Agora já podemos subir o container do MySQL da seguinte forma:

sudo docker run -d --network ideatip-services --name mysql -v /home/gabriel/app/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=ideatip mysql:5.7

Descrevendo o comando:
-d: indica que o caontainer será executado como um daemon em segundo plano.
–network: informamos à qual network nosso container será incluído, nesse caso “ideatip-services”
–name: Aqui informamos um nome para o container que poderá ser usado no lugar do ID para diversas operações.
-v: serve para montar os diretórios informados do container no caminho informado, nesse caso informamos que queremos montar o diretorio /var/lib/mysql do container em /home/gabriel/app/mysql do host, assim os bancos de dados criados serão salvos e acessiveis pelo host.
-e: indica que iremos passar uma variável de ambiente que será usada na criação do container e no caso do MySQL estamos passando a senha do root.
mysql:5.7 – Aqui informamos que iremos usar a imagem do MySQL e logo após os “:” informamos a TAG que geralmente se refere a versão, ou seja, utilizaremos o MySQL 5.7.

Criando o banco de dados para o Nextcloud

Com o MySQL pronto para uso precisamos agora criar um banco de dados e um usuário exclusivo para o nextcloud que terá acesso total ao seu banco. Para isso podemos concetar no container com o seguinte comando:

sudo docker exec -it mysql bash

Agora acederemos ao client cli que já vem incluso na imagem:

mysql -p

Digitamos a senha que utilizamos na variável MYSQL_ROOT_PASSWORD, no caso “ideatip” (sem aspas) e com isso deve ser exibida uma imagem semelhante a essa:

Instalando Nextcloud com Docker - criando banco
Acessando o MySQL

execute os seguintes comandos:

--Criando o Banco de dados:
CREATE DATABASE nextcloud;
--Criando o usuário:
CREATE USER nextcloud IDENTIFIED BY '123456789';
--Garantindo permissão total ao banco:
GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud;
--Flushing privileges:
FLUSH PRIVILEGES;

Terminando de executar todos os comandos de criação de usuario e banco de dados, digite “quit;” e logo em seguida “CTRL + D” para sair do bash do contêiner. E vamos para a instalação do Nextcloud.

Instalando o Nextcloud com Docker

Para subir a instancia do nextcloud com o docker use o comando:

sudo docker run -d --network ideatip-services --name nextcloud --link mysql:mysql -p 8080:80 -v /home/gabriel/app/nextcloud/data:/var/www/html/data -v /home/gabriel/app/nextcloud/config:/var/www/html/config nextcloud

Descrição dos comandos:
–link: Aqui temos um ponto muito importante, precisamos ligar um container à outro e usamos esse link para dizer que o container “mysql” poderá ser referenciado pela instancia do nextcloud pelo nome “mysql”.
-p: indicamos que queremos redirecionar o tráfego da porta 8080 do host para a porta 80 do container, ou seja, quando formos acessar o nextcloud usaremos a porta 80. Sinta-se a vontade para usar a porta que desejar.
-v: como já vimos no MySQL “unimos” os diretórios do host/container, nesse caso apenas o “data” e o “config”.

Verifique se tudo esta rodando normalmente com o:

sudo docker ps

Acessando o endereço do host na porta 8080 devemos ver a tela de configuração inicial do nextcloud:

Instalando Nextcloud com Docker - configuração
Configuração incial nextcloud

Aqui é solicitado:
Conta de administrador: coloque um nome que preferir, no exemplo usei “root”
Senha: A senha do usuário administrador
O caminho do diretório data: O diretório data é onde ficam salvos os arquivos dos usuários e é o que montamos no host. Deixe como está.
Banco de dados: Escolha MySQL/MariaDB e as opções de usuário, banco e endereço serão exibidas como na imagem.
Nome do usuário do banco de dados: Utilize o mesmo nome de usuario que usou no comando “CREATE USER” no MySQL.
Senha: No exemplo usamos a senha “123456789” para o usuário Nextcloud do MySQL
Banco de dados: Criamos o banco “nextcloud”.
Endereço: Aqui devemos utilizar o nome que definimos no parâmetro –link, no caso “mysql”.

Escolha se deseja ou não instalar as ferramentas padrão como callendar e o collabora office e clique em continuar. Ao fim do processo deve ser apresentada a tela de boas vindas.

Saudação após instalar nextcloud com docker.
Finalizada instalação do nextcloud

Conclusão

Instalação do Nextcloud com o Docker como podemos ver é extremamente simples e não deve demorar mais do que poucos minutos para que você tenha uma instancia funcionando. O melhor de tudo é que você manteve isolado do SO host, não teve que fazer uma porrada de downloads de dependências nem nada do tipo que é comum em instalações tradicionais.

Espero que este artigo tenha sido útil para você e até o próximo post 🙂

Algumas observações penso serem importantes, como o poque user o /home/gabriel para montar os diretórios?

Resolvi fazer isso pois no ubuntu é comum o uso do Docker instalado via snap e quem usa dessa forma pode enfrentar problemas montando diretórios dora de suas homes.

É possível automatizar essa criação de banco e configuração inicial do Nextcloud e você pode verificar mais nas respectivas paginas oficiais dos projetos do Nextcloud aqui e do MySQL aqui.

Leave Comment