Instalacion (docker)

Versión 5.1 por dFa el 2025/02/22 09:31

NEXTCLOUD

Instalación de nextcloud mediante docker



INICIO

Instalación

La instalación consta de 4 servicios:

  • db: Base de datos mariadb
  • redes: Base de datos de memoria caché redis
  • app: Aplicativo nextcloud
  • web: Servidor web nginx

El primer paso es generar nuestro docker-compose:

services:
 db:
   image: mariadb:10.11
   container_name: nextcloud-db
   restart: unless-stopped
   command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
   volumes:
      - database:/var/lib/mysql
   environment:
     MYSQL_ROOT_PASSWORD: Ko5b0sq977j1saaCQ3SD55
     MYSQL_DATABASE: nextcloud
     MYSQL_USER: nextcloud
     MYSQL_PASSWORD: Ko5b0sq977j1saaCQ3SD55

 redis:
   image: redis:alpine
   container_name: nextcloud-redis
   restart: unless-stopped
   volumes:
      - redis:/data

 app:
   image: nextcloud:fpm
   container_name: nextcloud-app
   restart: unless-stopped
   ports:
      - 9000:9000
   depends_on:
      - db
      - redis
   volumes:
      - data:/var/www/html
      - user:/var/nextcloud/data
      - /datos/dFa:/mnt
   environment:
     MYSQL_HOST: db
     MYSQL_DATABASE: nextcloud
     MYSQL_USER: nextcloud
     MYSQL_PASSWORD: Ko5b0sq977j1saaCQ3SD55
     REDIS_HOST: redis
     PHP_UPLOAD_LIMIT: 0
 web:
   image: nginx
   container_name: nextcloud-web
   restart: always
   ports:
      - 8080:80
   depends_on:
      - app
   volumes:
      - nginx_conf:/etc/nginx
      - data:/var/www/html
   volumes_from:
      - app

volumes:
 data:
   driver: local
 database:
   driver: local
 redis:
   driver: local
 nginx_conf:
   driver: local
 user:
   driver: local

Los volúmenes se han configurado por las siguientes razones:

  • database: Ficheros de la base de datos mysql
  • redis: Ficheros de la base de datos redes
  • data: Ficheros del aplicativo nextcloud (es necesario que lo usen tanto el contenedor app como el contenedor web)
  • user: Ficheros de los perfiles de usuarios creados para nextcloud
  • nginx_conf: Fichero nginx.conf

Además, en este caso, se ha realizado un bind de nuestro disco /datos para que sea utilizado como punto de montaje en nextcloud. Dado que es un contenedor, es necesario mapearlo para que la interfaz web tenga acceso al recurso de alguna manera.

Desplegamos los contenedores:

1740216587698-323.png