4.0 KiB
4.0 KiB
docker-nextcloud-extended
Nextcloud's docker image with extra utilities
This image is availabe on DockerHub
Utilities added
gnupg2
- Used by Snappymail to encrypt and sign emailsffmpeg
- Used by Video converter apparia2
andyoutube-dl
- Used by NCDownloader applibmagickcore-dev
- To fixModule php-imagick in this instance has no SVG support
error
Setup
I recommend using docker compose
to set up Nextcloud as it's easier to manage than palin Docker.
Basic docker-compose.yml
Important
Don't forget to change the passwords (similar to
<password>
) and if you'd like to change the database name and user too.
services:
db:
image: mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=<db_root_password>
- MYSQL_PASSWORD=<db_password>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
healthcheck:
test: mariadb-admin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
start_period: 5s
interval: 5s
timeout: 5s
retries: 55
app:
image: jiriks74/nextcloud-extended:stable
restart: always
ports:
- 80:80
links:
- db
- redis
depends_on:
redis:
condition: service_healthy
db:
condition: service_healthy
volumes:
- ./nextcloud:/var/www/html
- ./data:/var/www/html/data
environment:
- MYSQL_PASSWORD=<db_password>
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
- REDIS_HOST=redis
- REDIS_HOST_PASSWORD=<redis_password>
healthcheck:
test: curl -sSf 'http://localhost/status.php' | grep '"installed":true' | grep '"maintenance":false' | grep '"needsDbUpgrade":false' || exit 1
interval: 10s
timeout: 5s
retries: 10
redis:
image: redis
restart: always
command: redis-server --requirepass <redis_password>
volumes:
- ./redis:/data
healthcheck:
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
Tips
Cron job
If you're getting error simmilar to Last job execution ran a day ago. Something seems wrong.
try to add this to your cron tab (sudo crontab -e
):
0,5,10,15,20,25,30,35,40,45,50,55 * * * * docker exec -u www-data <container_name> php -f /var/www/html/cron.php
Important
Don't forget to change the
<container_name>
to your Nextcloud's container name (eg.docker-nextcloud_app
)