jiriks74
ee9813e4b5
The command extracted `28.0.5 28.0` instead of `28.0`. Fixed to use `28.0.5` instead. |
||
---|---|---|
.gitea/workflows | ||
.envrc | ||
.gitignore | ||
default.nix | ||
Dockerfile | ||
LICENSE | ||
README.md |
docker-nextcloud-extended
Nextcloud's docker image with extra utilities
Note
The images with tags
latest
andstable
are being rebuilt every week even if there isn't a Nextcloud update to get security updates formapt
.
Important
I do not recommend automatically pulling the
latest
andstable
tags as they track upstream image and they can update you to the next major version without you intending to do so.If you'd like to receive the weekly updates tag your images with the major version like
jiriks74/nextcloud-extended:28
. Keep in mind that these version tags are not automatically updated when new major version is out for thestable
tag upstream.
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
)