Add redis to nextcloud for file locking

This commit is contained in:
Wojciech Kozlowski 2023-08-17 20:23:08 +02:00
parent d09b2ae893
commit 00b0ccf4cb
8 changed files with 119 additions and 82 deletions

View File

@ -32,6 +32,7 @@
loop: loop:
- "pod-cloud.service" - "pod-cloud.service"
- "container-cloud-nginx.service" - "container-cloud-nginx.service"
- "container-cloud-redis.service"
- "container-cloud-chown.service" - "container-cloud-chown.service"
- "container-cloud-nextcloud.service" - "container-cloud-nextcloud.service"
- "container-cloud-cron.service" - "container-cloud-cron.service"

View File

@ -10,19 +10,19 @@ Environment=PODMAN_SYSTEMD_UNIT=%n
TimeoutStopSec=70 TimeoutStopSec=70
ExecStartPre=/bin/rm -f %t/container-cloud-chown.pid %t/container-cloud-chown.ctr-id ExecStartPre=/bin/rm -f %t/container-cloud-chown.pid %t/container-cloud-chown.ctr-id
ExecStart=/usr/bin/podman run \ ExecStart=/usr/bin/podman run \
--conmon-pidfile %t/container-cloud-chown.pid \ --conmon-pidfile %t/container-cloud-chown.pid \
--cidfile %t/container-cloud-chown.ctr-id \ --cidfile %t/container-cloud-chown.ctr-id \
--cgroups=no-conmon \ --cgroups=no-conmon \
--pod-id-file %t/pod-cloud.pod-id \ --pod-id-file %t/pod-cloud.pod-id \
--replace \ --replace \
-v {{ services_data_directory }}/pod-cloud/nextcloud/_data:/var/www/html \ -v {{ services_data_directory }}/pod-cloud/nextcloud/_data:/var/www/html \
-v {{ services_data_directory }}/pod-cloud/data/_data:/var/www/html/data \ -v {{ services_data_directory }}/pod-cloud/data/_data:/var/www/html/data \
-v {{ services_data_directory }}/pod-cloud/external/_data:/media/external \ -v {{ services_data_directory }}/pod-cloud/external/_data:/media/external \
--user=0 \ --user=0 \
--entrypoint="/bin/bash" \ --entrypoint="/bin/bash" \
--name=pod-cloud-chown \ --name=pod-cloud-chown \
docker.io/library/nextcloud:{{ services_service_deploy_versions.nextcloud }} \ docker.io/library/nextcloud:{{ services_service_deploy_versions.nextcloud }} \
-c "chown -R www-data:www-data /var/www/html /media/external" -c "chown -R www-data:www-data /var/www/html /media/external"
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-chown.ctr-id ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-chown.ctr-id
Type=oneshot Type=oneshot

View File

@ -14,23 +14,23 @@ Restart=on-failure
TimeoutStopSec=70 TimeoutStopSec=70
ExecStartPre=/bin/rm -f %t/container-cloud-cron.pid %t/container-cloud-cron.ctr-id ExecStartPre=/bin/rm -f %t/container-cloud-cron.pid %t/container-cloud-cron.ctr-id
ExecStart=/usr/bin/podman run \ ExecStart=/usr/bin/podman run \
--conmon-pidfile %t/container-cloud-cron.pid \ --conmon-pidfile %t/container-cloud-cron.pid \
--cidfile %t/container-cloud-cron.ctr-id \ --cidfile %t/container-cloud-cron.ctr-id \
--cgroups=no-conmon \ --cgroups=no-conmon \
--pod-id-file %t/pod-cloud.pod-id \ --pod-id-file %t/pod-cloud.pod-id \
--replace \ --replace \
--label "io.containers.autoupdate=image" \ --label "io.containers.autoupdate=image" \
--log-driver=journald \ --log-driver=journald \
-dt \ -dt \
--add-host=pod-database:{{ services_all_services['database'].inet_address }} \ --add-host=pod-database:{{ services_all_services['database'].inet_address }} \
--add-host=pod-database:{{ services_all_services['database'].inet6_address }} \ --add-host=pod-database:{{ services_all_services['database'].inet6_address }} \
-v {{ system_etc_root_directory }}/resolv.conf:/etc/resolv.conf:ro \ -v {{ system_etc_root_directory }}/resolv.conf:/etc/resolv.conf:ro \
-v {{ services_data_directory }}/pod-cloud/nextcloud/_data:/var/www/html \ -v {{ services_data_directory }}/pod-cloud/nextcloud/_data:/var/www/html \
-v {{ services_data_directory }}/pod-cloud/data/_data:/var/www/html/data \ -v {{ services_data_directory }}/pod-cloud/data/_data:/var/www/html/data \
-v {{ services_data_directory }}/pod-cloud/external/_data:/media/external \ -v {{ services_data_directory }}/pod-cloud/external/_data:/media/external \
--name=pod-cloud-cron \ --name=pod-cloud-cron \
docker.io/library/nextcloud:{{ services_service_deploy_versions.nextcloud }} \ docker.io/library/nextcloud:{{ services_service_deploy_versions.nextcloud }} \
/cron.sh /cron.sh
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/container-cloud-cron.ctr-id -t 10 ExecStop=/usr/bin/podman stop --ignore --cidfile %t/container-cloud-cron.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-cron.ctr-id ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-cron.ctr-id
PIDFile=%t/container-cloud-cron.pid PIDFile=%t/container-cloud-cron.pid

View File

@ -4,8 +4,8 @@ Documentation=man:podman-generate-systemd(1)
Wants=network.target Wants=network.target
After=network-online.target After=network-online.target
BindsTo=pod-cloud.service BindsTo=pod-cloud.service
Requires=container-cloud-chown.service Requires=container-cloud-chown.service container-cloud-redis.service
After=pod-cloud.service container-cloud-chown.service After=pod-cloud.service container-cloud-chown.service container-cloud-redis.service
OnFailure=status-mail@%n.service OnFailure=status-mail@%n.service
[Service] [Service]
@ -14,39 +14,40 @@ Restart=on-failure
TimeoutStopSec=70 TimeoutStopSec=70
ExecStartPre=/bin/rm -f %t/container-cloud-nextcloud.pid %t/container-cloud-nextcloud.ctr-id ExecStartPre=/bin/rm -f %t/container-cloud-nextcloud.pid %t/container-cloud-nextcloud.ctr-id
ExecStart=/usr/bin/podman run \ ExecStart=/usr/bin/podman run \
--conmon-pidfile %t/container-cloud-nextcloud.pid \ --conmon-pidfile %t/container-cloud-nextcloud.pid \
--cidfile %t/container-cloud-nextcloud.ctr-id \ --cidfile %t/container-cloud-nextcloud.ctr-id \
--cgroups=no-conmon \ --cgroups=no-conmon \
--pod-id-file %t/pod-cloud.pod-id \ --pod-id-file %t/pod-cloud.pod-id \
--replace \ --replace \
--label "io.containers.autoupdate=image" \ --label "io.containers.autoupdate=image" \
--log-driver=journald \ --log-driver=journald \
-dt \ -dt \
--add-host=pod-database:{{ services_all_services['database'].inet_address }} \ --add-host=pod-database:{{ services_all_services['database'].inet_address }} \
--add-host=pod-database:{{ services_all_services['database'].inet6_address }} \ --add-host=pod-database:{{ services_all_services['database'].inet6_address }} \
-v {{ system_etc_root_directory }}/resolv.conf:/etc/resolv.conf:ro \ -v {{ system_etc_root_directory }}/resolv.conf:/etc/resolv.conf:ro \
-v {{ services_data_directory }}/pod-cloud/nextcloud/_data:/var/www/html \ -v {{ services_data_directory }}/pod-cloud/nextcloud/_data:/var/www/html \
-v {{ services_data_directory }}/pod-cloud/data/_data:/var/www/html/data \ -v {{ services_data_directory }}/pod-cloud/data/_data:/var/www/html/data \
-v {{ services_data_directory }}/pod-cloud/external/_data:/media/external \ -v {{ services_data_directory }}/pod-cloud/external/_data:/media/external \
-v ./.config/service/database.name:/run/secrets/database.name:ro \ -v ./.config/service/database.name:/run/secrets/database.name:ro \
-v ./.config/service/database.user:/run/secrets/database.user:ro \ -v ./.config/service/database.user:/run/secrets/database.user:ro \
-v ./.config/service/database.password:/run/secrets/database.password:ro \ -v ./.config/service/database.password:/run/secrets/database.password:ro \
-e POSTGRES_HOST=pod-database:5432 \ -e POSTGRES_HOST=pod-database:5432 \
-e POSTGRES_DB_FILE=/run/secrets/database.name \ -e POSTGRES_DB_FILE=/run/secrets/database.name \
-e POSTGRES_USER_FILE=/run/secrets/database.user \ -e POSTGRES_USER_FILE=/run/secrets/database.user \
-e POSTGRES_PASSWORD_FILE=/run/secrets/database.password \ -e POSTGRES_PASSWORD_FILE=/run/secrets/database.password \
-e NEXTCLOUD_TRUSTED_DOMAINS="{{ services[services_service_name].domain }}" \ -e REDIS_HOST=localhost \
-e OVERWRITEPROTOCOL="https" \ -e NEXTCLOUD_TRUSTED_DOMAINS="{{ services[services_service_name].domain }}" \
-e SMTP_HOST="{{ services[services_service_name].smtp.host }}" \ -e OVERWRITEPROTOCOL="https" \
-e SMTP_SECURE="ssl" \ -e SMTP_HOST="{{ services[services_service_name].smtp.host }}" \
-e SMTP_PORT=465 \ -e SMTP_SECURE="ssl" \
-e SMTP_AUTHTYPE="PLAIN" \ -e SMTP_PORT=465 \
-e SMTP_NAME="{{ services[services_service_name].smtp.user }}" \ -e SMTP_AUTHTYPE="PLAIN" \
-e SMTP_PASSWORD="{{ services[services_service_name].smtp.password }}" \ -e SMTP_NAME="{{ services[services_service_name].smtp.user }}" \
-e MAIL_FROM_ADDRESS="cloud" \ -e SMTP_PASSWORD="{{ services[services_service_name].smtp.password }}" \
-e MAIL_DOMAIN="{{ services[services_service_name].domain }}" \ -e MAIL_FROM_ADDRESS="cloud" \
--name=pod-cloud-nextcloud \ -e MAIL_DOMAIN="{{ services[services_service_name].domain }}" \
docker.io/library/nextcloud:{{ services_service_deploy_versions.nextcloud }} --name=pod-cloud-nextcloud \
docker.io/library/nextcloud:{{ services_service_deploy_versions.nextcloud }}
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/container-cloud-nextcloud.ctr-id -t 10 ExecStop=/usr/bin/podman stop --ignore --cidfile %t/container-cloud-nextcloud.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-nextcloud.ctr-id ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-nextcloud.ctr-id
PIDFile=%t/container-cloud-nextcloud.pid PIDFile=%t/container-cloud-nextcloud.pid

View File

@ -4,7 +4,7 @@ Documentation=man:podman-generate-systemd(1)
Wants=network.target Wants=network.target
After=network-online.target After=network-online.target
BindsTo=pod-cloud.service BindsTo=pod-cloud.service
After=pod-cloud.service After=pod-cloud.service pod-cloud-nextcloud.service
OnFailure=status-mail@%n.service OnFailure=status-mail@%n.service
[Service] [Service]
@ -13,20 +13,20 @@ Restart=on-failure
TimeoutStopSec=70 TimeoutStopSec=70
ExecStartPre=/bin/rm -f %t/container-cloud-nginx.pid %t/container-cloud-nginx.ctr-id ExecStartPre=/bin/rm -f %t/container-cloud-nginx.pid %t/container-cloud-nginx.ctr-id
ExecStart=/usr/bin/podman run \ ExecStart=/usr/bin/podman run \
--conmon-pidfile %t/container-cloud-nginx.pid \ --conmon-pidfile %t/container-cloud-nginx.pid \
--cidfile %t/container-cloud-nginx.ctr-id \ --cidfile %t/container-cloud-nginx.ctr-id \
--cgroups=no-conmon \ --cgroups=no-conmon \
--pod-id-file %t/pod-cloud.pod-id \ --pod-id-file %t/pod-cloud.pod-id \
--replace \ --replace \
--label "io.containers.autoupdate=image" \ --label "io.containers.autoupdate=image" \
--log-driver=journald \ --log-driver=journald \
-dt \ -dt \
-v {{ system_etc_root_directory }}/resolv.conf:/etc/resolv.conf:ro \ -v {{ system_etc_root_directory }}/resolv.conf:/etc/resolv.conf:ro \
-v ./.config/service/nginx.conf:/etc/nginx/nginx.conf:ro \ -v ./.config/service/nginx.conf:/etc/nginx/nginx.conf:ro \
-v {{ services_data_directory }}/pod-cloud/nextcloud/_data:/var/www/html \ -v {{ services_data_directory }}/pod-cloud/nextcloud/_data:/var/www/html \
-v {{ services_data_directory }}/pod-cloud/data/_data:/var/www/html/data \ -v {{ services_data_directory }}/pod-cloud/data/_data:/var/www/html/data \
--name=pod-cloud-nginx \ --name=pod-cloud-nginx \
docker.io/library/nginx:{{ services_service_deploy_versions.nginx }} docker.io/library/nginx:{{ services_service_deploy_versions.nginx }}
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/container-cloud-nginx.ctr-id -t 10 ExecStop=/usr/bin/podman stop --ignore --cidfile %t/container-cloud-nginx.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-nginx.ctr-id ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-nginx.ctr-id
PIDFile=%t/container-cloud-nginx.pid PIDFile=%t/container-cloud-nginx.pid

View File

@ -0,0 +1,34 @@
[Unit]
Description=Podman container-cloud-redis.service
Documentation=man:podman-generate-systemd(1)
Wants=network.target
After=network-online.target
BindsTo=pod-cloud.service
After=pod-cloud.service
Before=pod-cloud-nextcloud.service
OnFailure=status-mail@%n.service
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Restart=on-failure
TimeoutStopSec=70
ExecStartPre=/bin/rm -f %t/container-cloud-redis.pid %t/container-cloud-redis.ctr-id
ExecStart=/usr/bin/podman run \
--conmon-pidfile %t/container-cloud-redis.pid \
--cidfile %t/container-cloud-redis.ctr-id \
--cgroups=no-conmon \
--pod-id-file %t/pod-cloud.pod-id \
--replace \
--label "io.containers.autoupdate=image" \
--log-driver=journald \
-dt \
-v {{ system_etc_root_directory }}/resolv.conf:/etc/resolv.conf:ro \
--name=pod-cloud-redis \
docker.io/library/redis:{{ services_service_deploy_versions.redis }}
ExecStop=/usr/bin/podman stop --ignore --cidfile %t/container-cloud-redis.ctr-id -t 10
ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-cloud-redis.ctr-id
PIDFile=%t/container-cloud-redis.pid
Type=forking
[Install]
WantedBy=multi-user.target default.target

View File

@ -3,8 +3,8 @@ Description=Podman pod-cloud.service
Documentation=man:podman-generate-systemd(1) Documentation=man:podman-generate-systemd(1)
Wants=network.target Wants=network.target
After=network-online.target After=network-online.target
Requires=container-cloud-nginx.service container-cloud-nextcloud.service container-cloud-cron.service Requires=container-cloud-nginx.service container-cloud-redis.service container-cloud-nextcloud.service container-cloud-cron.service
Before=container-cloud-nginx.service container-cloud-nextcloud.service container-cloud-cron.service Before=container-cloud-nginx.service container-cloud-redis.service container-cloud-nextcloud.service container-cloud-cron.service
OnFailure=status-mail@%n.service OnFailure=status-mail@%n.service
[Service] [Service]

View File

@ -12,6 +12,7 @@ services_deploy_versions:
cloud: cloud:
nginx: "stable" nginx: "stable"
nextcloud: "27-fpm" nextcloud: "27-fpm"
redis: "7"
git: git:
gitea: "1" gitea: "1"
notes: notes: