Skip to content

Commit 8a56718

Browse files
committed
add mariadb in local nextcloud setup
1 parent f88ded4 commit 8a56718

2 files changed

Lines changed: 58 additions & 6 deletions

File tree

docker-compose.yaml

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,44 @@ services:
1919
environment:
2020
XDEBUG_MODE: debug,develop
2121
XDEBUG_CONFIG: client_host=host.docker.internal client_port=9003 idekey=VSCODE
22+
MYSQL_HOST: mariadb
23+
MYSQL_DATABASE: nextcloud
24+
MYSQL_USER: nextcloud
25+
MYSQL_PASSWORD: nextcloud
26+
NEXTCLOUD_ADMIN_USER: admin
27+
NEXTCLOUD_ADMIN_PASSWORD: admin
28+
NEXTCLOUD_TRUSTED_DOMAINS: localhost 127.0.0.1 nextcloud-container
2229
depends_on:
23-
- smtp
30+
smtp:
31+
condition: service_started
32+
mariadb:
33+
condition: service_healthy
2434
restart: unless-stopped
2535
networks:
2636
nextcloud-network:
37+
38+
mariadb:
39+
image: mariadb:11
40+
container_name: mariadb
41+
hostname: mariadb
42+
restart: unless-stopped
43+
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
44+
environment:
45+
MARIADB_DATABASE: nextcloud
46+
MARIADB_USER: nextcloud
47+
MARIADB_PASSWORD: nextcloud
48+
MARIADB_ROOT_PASSWORD: rootpassword
49+
volumes:
50+
- mariadb-data:/var/lib/mysql
51+
healthcheck:
52+
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
53+
interval: 10s
54+
timeout: 5s
55+
retries: 5
56+
start_period: 20s
57+
networks:
58+
- nextcloud-network
59+
2760
smtp:
2861
image: rnwood/smtp4dev:latest
2962
container_name: smtp
@@ -53,3 +86,6 @@ services:
5386

5487
networks:
5588
nextcloud-network:
89+
90+
volumes:
91+
mariadb-data:

scripts/run-app.sh

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,27 @@ setup_nextcloud () {
5454
docker cp ./empty-skeleton.config.php nextcloud-container:/var/www/html/config/config.php
5555
docker exec -i nextcloud-container chown www-data:www-data /var/www/html/config/config.php
5656

57-
until docker exec --user www-data -i nextcloud-container php occ maintenance:install --admin-user=admin --admin-pass=admin | grep "Nextcloud was successfully installed"
58-
do
59-
echo "Waiting for installation to finish..."
60-
sleep 2
61-
done
57+
if docker exec --user www-data -i nextcloud-container php occ status | grep -q "installed: true"; then
58+
echo "Nextcloud already installed, skipping manual maintenance:install."
59+
else
60+
until docker exec --user www-data -i nextcloud-container php occ maintenance:install \
61+
--database="mysql" \
62+
--database-host="mariadb" \
63+
--database-name="nextcloud" \
64+
--database-user="nextcloud" \
65+
--database-pass="nextcloud" \
66+
--admin-user=admin \
67+
--admin-pass=admin | grep "Nextcloud was successfully installed"
68+
do
69+
# The container may auto-install in parallel depending on entrypoint env vars.
70+
if docker exec --user www-data -i nextcloud-container php occ status | grep -q "installed: true"; then
71+
echo "Nextcloud became installed during setup, skipping manual maintenance:install."
72+
break
73+
fi
74+
echo "Waiting for installation to finish..."
75+
sleep 2
76+
done
77+
fi
6278

6379
docker exec --user www-data -i nextcloud-container php occ log:manage --level DEBUG
6480
docker exec --user www-data -i nextcloud-container php occ app:disable firstrunwizard

0 commit comments

Comments
 (0)