Optimized docker nextcloud for backup

This commit is contained in:
Kevin Veen-Birkenbach 2021-10-08 22:08:48 +02:00
parent 3ed6e3b49d
commit e09d5022db
4 changed files with 84 additions and 56 deletions

View File

@ -71,3 +71,5 @@ To use occ run:
- https://help.nextcloud.com/t/update-to-22-failed-with-database-error-updated/120682 - https://help.nextcloud.com/t/update-to-22-failed-with-database-error-updated/120682
- https://help.nextcloud.com/t/nc-update-to-21-0-0-beta1-exception-database-error/101124/4 - https://help.nextcloud.com/t/nc-update-to-21-0-0-beta1-exception-database-error/101124/4
- https://wolfgang.gassler.org/reset-password-mariadb-mysql-docker/ - https://wolfgang.gassler.org/reset-password-mariadb-mysql-docker/
- https://unix.stackexchange.com/questions/478855/ansible-docker-container-and-depends-on
- https://github.com/gdiepen/docker-convenience-scripts

View File

@ -0,0 +1,5 @@
---
- name: recreate nextcloud
command:
cmd: docker-compose -p nextcloud up -d --force-recreate
chdir: /usr/local/bin/nextcloud/

View File

@ -6,6 +6,7 @@
template: src=templates/nextcloud.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf template: src=templates/nextcloud.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf
notify: restart nginx notify: restart nginx
# @todo rename
- name: "create /usr/local/bin/docker-nextcloud/" - name: "create /usr/local/bin/docker-nextcloud/"
file: file:
path: "/usr/local/bin/docker-nextcloud" path: "/usr/local/bin/docker-nextcloud"
@ -16,59 +17,13 @@
template: src=templates/nginx.conf.j2 dest=/usr/local/bin/docker-nextcloud/nginx.conf template: src=templates/nginx.conf.j2 dest=/usr/local/bin/docker-nextcloud/nginx.conf
notify: restart nginx notify: restart nginx
- name: "setup nextcloud" # @todo rename
docker_compose: - name: "create /usr/local/bin/nextcloud/"
project_name: nextcloud file:
definition: path: "/usr/local/bin/nextcloud"
application: state: directory
image: "nextcloud:{{nextcloud_version}}-fpm-alpine" mode: 0755
restart: always
log_driver: journald - name: add docker-compose.yml
links: template: src=docker-compose.yml.j2 dest=/usr/local/bin/nextcloud/docker-compose.yml
- database notify: recreate nextcloud
volumes:
- nextcloud-data:/var/www/html
environment:
COMPOSE_HTTP_TIMEOUT: 120
DOCKER_CLIENT_TIMEOUT: 120
MYSQL_DATABASE: "nextcloud"
MYSQL_USER: "nextcloud"
MYSQL_PASSWORD: "{{nextcloud_database_password}}"
MYSQL_HOST: database:3306
database:
log_driver: journald
image: mariadb
environment:
COMPOSE_HTTP_TIMEOUT: 120
DOCKER_CLIENT_TIMEOUT: 120
MYSQL_DATABASE: "nextcloud"
MYSQL_USER: "nextcloud"
MYSQL_PASSWORD: "{{nextcloud_database_password}}"
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
volumes:
- nextcloud-database:/var/lib/mysql
restart: always
web:
image: nginx:alpine
log_driver: journald
restart: always
ports:
- "127.0.0.1:{{http_port}}:80"
links:
- application
volumes:
- /usr/local/bin/docker-nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- application
redis:
image: redis:alpine
restart: always
cron:
image: "nextcloud:{{nextcloud_version}}-fpm-alpine"
restart: always
volumes:
- nextcloud-data:/var/www/html
entrypoint: /cron.sh
# depends_on:
# - database
# - redis

View File

@ -0,0 +1,66 @@
version: '2'
services:
application:
image: "nextcloud:{{nextcloud_version}}-fpm-alpine"
restart: always
logging:
driver: journald
depends_on:
- database
volumes:
- data:/var/www/html
environment:
COMPOSE_HTTP_TIMEOUT: 120
DOCKER_CLIENT_TIMEOUT: 120
MYSQL_DATABASE: "nextcloud"
MYSQL_USER: "nextcloud"
MYSQL_PASSWORD: "{{nextcloud_database_password}}"
MYSQL_HOST: database:3306
database:
logging:
driver: journald
image: mariadb
environment:
COMPOSE_HTTP_TIMEOUT: 120
DOCKER_CLIENT_TIMEOUT: 120
MYSQL_DATABASE: "nextcloud"
MYSQL_USER: "nextcloud"
MYSQL_PASSWORD: "{{nextcloud_database_password}}"
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
volumes:
- database:/var/lib/mysql
restart: always
web:
image: nginx:alpine
logging:
driver: journald
restart: always
ports:
- "127.0.0.1:{{http_port}}:80"
depends_on:
- application
volumes:
- /usr/local/bin/docker-nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro
volumes_from:
- application
redis:
image: redis:alpine
restart: always
cron:
image: "nextcloud:{{nextcloud_version}}-fpm-alpine"
restart: always
logging:
driver: journald
volumes:
- data:/var/www/html
entrypoint: /cron.sh
depends_on:
- database
- redis
volumes:
database:
data:
networks:
default:
driver: bridge