Merge pull request #1586 from ManOki/main

manual-install: add docker profiles for optional services
This commit is contained in:
Simon L 2022-12-23 21:59:15 +01:00 committed by GitHub
commit 67aa36c687
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 40 additions and 18 deletions

View file

@ -28,7 +28,7 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-database:
container_name: nextcloud-aio-database
image: nextcloud/aio-postgresql:latest-arm64
@ -45,7 +45,7 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-nextcloud:
container_name: nextcloud-aio-nextcloud
depends_on:
@ -101,7 +101,7 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-redis:
container_name: nextcloud-aio-redis
image: nextcloud/aio-redis:latest-arm64
@ -112,9 +112,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-collabora:
container_name: nextcloud-aio-collabora
profiles: ["collabora"]
image: nextcloud/aio-collabora:latest-arm64
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
@ -125,9 +126,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-talk:
container_name: nextcloud-aio-talk
profiles: ["talk"]
image: nextcloud/aio-talk:latest-arm64
ports:
- ${TALK_PORT}:${TALK_PORT}/tcp
@ -143,9 +145,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-onlyoffice:
container_name: nextcloud-aio-onlyoffice
profiles: ["onlyoffice"]
image: nextcloud/aio-onlyoffice:latest-arm64
environment:
- TZ=${TIMEZONE}
@ -158,9 +161,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-imaginary:
container_name: nextcloud-aio-imaginary
profiles: ["imaginary"]
image: nextcloud/aio-imaginary:latest-arm64
environment:
- TZ=${TIMEZONE}
@ -168,9 +172,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-fulltextsearch:
container_name: nextcloud-aio-fulltextsearch
profiles: ["fulltextsearch"]
image: nextcloud/aio-fulltextsearch:latest-arm64
environment:
- TZ=${TIMEZONE}

View file

@ -28,7 +28,7 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-database:
container_name: nextcloud-aio-database
image: nextcloud/aio-postgresql:latest
@ -45,7 +45,7 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-nextcloud:
container_name: nextcloud-aio-nextcloud
depends_on:
@ -104,7 +104,7 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-redis:
container_name: nextcloud-aio-redis
image: nextcloud/aio-redis:latest
@ -115,9 +115,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-collabora:
container_name: nextcloud-aio-collabora
profiles: ["collabora"]
image: nextcloud/aio-collabora:latest
environment:
- aliasgroup1=https://${NC_DOMAIN}:443
@ -128,9 +129,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-talk:
container_name: nextcloud-aio-talk
profiles: ["talk"]
image: nextcloud/aio-talk:latest
ports:
- ${TALK_PORT}:${TALK_PORT}/tcp
@ -146,9 +148,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-clamav:
container_name: nextcloud-aio-clamav
profiles: ["clamav"]
image: nextcloud/aio-clamav:latest
environment:
- TZ=${TIMEZONE}
@ -158,9 +161,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-onlyoffice:
container_name: nextcloud-aio-onlyoffice
profiles: ["onlyoffice"]
image: nextcloud/aio-onlyoffice:latest
environment:
- TZ=${TIMEZONE}
@ -173,9 +177,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-imaginary:
container_name: nextcloud-aio-imaginary
profiles: ["imaginary"]
image: nextcloud/aio-imaginary:latest
environment:
- TZ=${TIMEZONE}
@ -183,9 +188,10 @@ services:
restart: unless-stopped
networks:
- nextcloud-aio
nextcloud-aio-fulltextsearch:
container_name: nextcloud-aio-fulltextsearch
profiles: ["fulltextsearch"]
image: nextcloud/aio-fulltextsearch:latest
environment:
- TZ=${TIMEZONE}

View file

@ -27,6 +27,11 @@ Now copy the provided yaml file to a docker-compose file by running on x64 `cp l
Now you should be ready to go with `sudo docker-compose --env-file my.conf up`.
## Docker profiles
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, onlyoffice, talk, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`.
For a complete all-in-one with collabora use `sudo docker-compose --env-file my.conf --profile collabora --profile talk --profile clamav --profile imaginary --profile fulltextsearch up`.
## How to update?
Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers.
1. Run `sudo docker-compose --env-file my.conf down` to stop all running containers

View file

@ -92,6 +92,11 @@ do
if [ "$name" != "nextcloud-aio-apache" ]; then
OUTPUT="$(echo "$OUTPUT" | sed "/ $name:/i\ ")"
fi
if ! echo "$name" | grep "apache$" && ! echo "$name" | grep "database$" && ! echo "$name" | grep "nextcloud$" && ! echo "$name" | grep "redis$"; then
sed -i '/container_name/d' containers.yml
SLIM_NAME="${name##nextcloud-aio-}"
OUTPUT="$(echo "$OUTPUT" | sed "/container_name: $name$/a\ \ \ \ profiles:\ \[\"$SLIM_NAME\"\]")"
fi
done
OUTPUT="$(echo "$OUTPUT" | sed "/restart: /a\ \ \ \ networks:\n\ \ \ \ \ \ - nextcloud-aio")"
@ -102,6 +107,7 @@ echo "" >> containers.yml
echo "$OUTPUT" >> containers.yml
sed -i '/container_name/d' containers.yml
sed -i 's|^ $||' containers.yml
VOLUMES="$(grep -oP 'nextcloud_aio_[a-z_]+' containers.yml | sort -u)"
mapfile -t VOLUMES <<< "$VOLUMES"
@ -126,7 +132,7 @@ sed -i '/image:/s/$/:latest/' latest.yml
cat containers.yml > latest-arm64.yml
sed -i '/image:/s/$/:latest-arm64/' latest-arm64.yml
sed -i '/ nextcloud-aio-clamav:/,/^ $/d' latest-arm64.yml
sed -i '/ nextcloud-aio-clamav:/,/^$/d' latest-arm64.yml
sed -i '/nextcloud[-_]aio[-_]clamav/d' latest-arm64.yml
sed -i '/CLAMAV_ENABLED/d' latest-arm64.yml