services:
db:
image: mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_PASSWORD=supersecretpassword
- MYSQL_DATABASE=nextclouddb
- MYSQL_USER=nextclouduser
- MYSQL_RANDOM_ROOT_PASSWORD='yes'
redis:
image: redis
restart: always
command: redis-server --requirepass supersecretpassword2
app:
image: nextcloud:27
restart: always
ports:
- 8080:80
links:
- db
- redis
volumes:
- ./html:/var/www/html
environment:
- MYSQL_PASSWORD=supersecretpassword
- MYSQL_DATABASE=nextclouddb
- MYSQL_USER=nextclouduser
- MYSQL_HOST=db
- REDIS_HOST_PASSWORD=supersecretpassword2
depends_on:
- db
- redis
cron:
image: nextcloud:27
restart: always
volumes:
- ./html:/var/www/html
entrypoint: /cron.sh
depends_on:
- db
To use this you need docker-compose installed. Once thats installed create a nextcloud folder and copy in this file as docker-compose.yaml. Once you are in the working directory run docker-compose up -d
The title says quick and dirty. Besides, you can always keep this kind of thing behind some Nginx proxy like nginx-proxy-manager (and probably should)