Docker: Improve docker-compose.yml config examples #1172 #1784

This commit is contained in:
Michael Mayer 2021-12-02 10:43:36 +01:00
parent ec374a9172
commit 34e316b81b
8 changed files with 21 additions and 40 deletions

View file

@ -3,11 +3,12 @@ version: '3.5'
# Example Docker Compose config file for PhotoPrism (Raspberry Pi and other ARM-based devices)
#
# Note:
# - Use https://dl.photoprism.org/docker/armv7/ for running PhotoPrism on ARMv7-based devices.
# - You have to boot your Raspberry Pi 3 / 4 with the parameter "arm_64bit=1" in config.txt to use our ARM64 image.
# - If you see errors related to "cgroups", it may help to add the following line to /boot/firmware/cmdline.txt:
# cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
# - Running PhotoPrism on a server with less than 4 GB of swap (or setting a Docker memory / swap limit) can cause
# unexpected restarts ("crashes"), especially when the indexer temporarily needs more memory to process large files.
# - If you see errors related to "cgroups", it may help to add the following line to /boot/firmware/cmdline.txt:
# cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure
# HTTPS reverse proxy such as Traefik, Caddy, or NGINX. Your files and passwords will otherwise be transmitted
# in clear text and can be intercepted by anyone, including your provider, hackers, and governments.
@ -45,8 +46,6 @@ services:
## ARM64, and ARMv7. Use photoprism/photoprism:preview for testing preview builds or
## photoprism/photoprism:latest for the stable release:
image: photoprism/photoprism:latest
## Owners of ARMv7-based devices may have to explicitly specify the image architecture:
# platform: "linux/arm"
depends_on:
- mariadb
## Only enable automatic restarts once your installation is properly
@ -115,37 +114,19 @@ services:
## see https://docs.photoprism.org/getting-started/faq/#should-i-use-sqlite-mariadb-or-mysql
mariadb:
restart: unless-stopped
image: arm64v8/mariadb:10.6
image: arm64v8/mariadb:10.6 # this mariadb image runs on ARM64-based devices only
security_opt:
- seccomp:unconfined
- apparmor:unconfined
command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "./database:/var/lib/mysql" # Never remove
- "./database:/var/lib/mysql" # never remove
environment:
MYSQL_ROOT_PASSWORD: insecure
MYSQL_DATABASE: photoprism
MYSQL_USER: photoprism
MYSQL_PASSWORD: insecure
## Owners of ARMv7-based devices have to revert to an alternative image if they want to use MariaDB.
## The official image is available for AMD64 and ARM64 only. ARM64 users can remove this:
#
# mariadb:
# restart: unless-stopped
# image: lscr.io/linuxserver/mariadb:latest
# security_opt:
# - seccomp:unconfined
# - apparmor:unconfined
# command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
# volumes:
# - "./mariadb:/config" # Never remove
# environment:
# MYSQL_ROOT_PASSWORD: insecure
# MYSQL_DATABASE: photoprism
# MYSQL_USER: photoprism
# MYSQL_PASSWORD: insecure
## Watchtower upgrades services automatically (optional)
## see https://docs.photoprism.org/getting-started/updates/#watchtower
#
@ -154,7 +135,7 @@ services:
# image: containrrr/watchtower
# environment:
# WATCHTOWER_CLEANUP: "true"
# WATCHTOWER_POLL_INTERVAL: 7200 # Checks for updates every two hours
# WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
# - "~/.docker/config.json:/config.json" # Optional, for authentication if you have a Docker Hub account

View file

@ -4,10 +4,10 @@ version: '3.5'
#
# Note:
# - Use https://dl.photoprism.org/docker/arm64/docker-compose.yml for running PhotoPrism on ARM64-based devices.
# - If you see errors related to "cgroups", it may help to add the following line to /boot/firmware/cmdline.txt:
# cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
# - Running PhotoPrism on a server with less than 4 GB of swap (or setting a Docker memory / swap limit) can cause
# unexpected restarts ("crashes"), especially when the indexer temporarily needs more memory to process large files.
# - If you see errors related to "cgroups", it may help to add the following line to /boot/firmware/cmdline.txt:
# cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
# - If you install PhotoPrism on a public server outside your home network, please always run it behind a secure
# HTTPS reverse proxy such as Traefik, Caddy, or NGINX. Your files and passwords will otherwise be transmitted
# in clear text and can be intercepted by anyone, including your provider, hackers, and governments.
@ -118,7 +118,7 @@ services:
- apparmor:unconfined
command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "./mariadb:/config" # Never remove
- "./mariadb:/config" # never remove
environment:
MYSQL_ROOT_PASSWORD: insecure
MYSQL_DATABASE: photoprism
@ -133,7 +133,7 @@ services:
# image: containrrr/watchtower
# environment:
# WATCHTOWER_CLEANUP: "true"
# WATCHTOWER_POLL_INTERVAL: 7200 # Checks for updates every two hours
# WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
# - "~/.docker/config.json:/config.json" # Optional, for authentication if you have a Docker Hub account

View file

@ -196,7 +196,7 @@ services:
- apparmor:unconfined
command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "./database:/var/lib/mysql" # Never remove
- "./database:/var/lib/mysql" # never remove
environment:
MYSQL_ROOT_PASSWORD: "_admin_password_"
MYSQL_DATABASE: "photoprism"
@ -221,6 +221,6 @@ services:
container_name: watchtower
environment:
WATCHTOWER_CLEANUP: "true"
WATCHTOWER_POLL_INTERVAL: 86400 # Checks for updates every day
WATCHTOWER_POLL_INTERVAL: 86400 # checks for updates every day
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"

View file

@ -121,7 +121,7 @@ services:
- apparmor:unconfined
command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "./database:/var/lib/mysql" # Never remove
- "./database:/var/lib/mysql" # never remove
environment:
MYSQL_ROOT_PASSWORD: insecure
MYSQL_DATABASE: photoprism
@ -136,7 +136,7 @@ services:
# image: containrrr/watchtower
# environment:
# WATCHTOWER_CLEANUP: "true"
# WATCHTOWER_POLL_INTERVAL: 7200 # Checks for updates every two hours
# WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
# - "~/.docker/config.json:/config.json" # Optional, for authentication if you have a Docker Hub account

View file

@ -101,7 +101,7 @@ services:
## see https://mariadb.com/kb/en/server-system-variables/#lower_case_table_names
command: mysqld --lower-case-table-names=1 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "mariadb_data:/var/lib/mysql" # Never remove
- "mariadb_data:/var/lib/mysql" # never remove
environment:
MYSQL_ROOT_PASSWORD: insecure
MYSQL_DATABASE: photoprism
@ -116,7 +116,7 @@ services:
# image: containrrr/watchtower
# environment:
# WATCHTOWER_CLEANUP: "true"
# WATCHTOWER_POLL_INTERVAL: 7200 # Checks for updates every two hours
# WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
# - "~/.docker/config.json:/config.json" # Optional, for authentication if you have a Docker Hub account

View file

@ -113,7 +113,7 @@ services:
- apparmor:unconfined
command: mysqld --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "./database:/var/lib/mysql" # Never remove
- "./database:/var/lib/mysql" # never remove
environment:
MYSQL_ROOT_PASSWORD: insecure
MYSQL_DATABASE: photoprism
@ -138,7 +138,7 @@ services:
# image: containrrr/watchtower
# environment:
# WATCHTOWER_CLEANUP: "true"
# WATCHTOWER_POLL_INTERVAL: 7200 # Checks for updates every two hours
# WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
# - "~/.docker/config.json:/config.json" # Optional, for authentication if you have a Docker Hub account

View file

@ -103,7 +103,7 @@ services:
# image: containrrr/watchtower
# environment:
# WATCHTOWER_CLEANUP: "true"
# WATCHTOWER_POLL_INTERVAL: 7200 # Checks for updates every two hours
# WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
# - "~/.docker/config.json:/config.json" # Optional, for authentication if you have a Docker Hub account

View file

@ -105,7 +105,7 @@ services:
## see https://mariadb.com/kb/en/server-system-variables/#lower_case_table_names
command: mysqld --lower-case-table-names=1 --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
volumes:
- "mariadb_data:/var/lib/mysql" # Never remove, the named volume "mariadb_data" is defined at the bottom
- "mariadb_data:/var/lib/mysql" # never remove, the named volume "mariadb_data" is defined at the bottom
environment:
MYSQL_ROOT_PASSWORD: insecure
MYSQL_DATABASE: photoprism
@ -120,7 +120,7 @@ services:
# image: containrrr/watchtower
# environment:
# WATCHTOWER_CLEANUP: "true"
# WATCHTOWER_POLL_INTERVAL: 7200 # Checks for updates every two hours
# WATCHTOWER_POLL_INTERVAL: 7200 # checks for updates every two hours
# volumes:
# - "/var/run/docker.sock:/var/run/docker.sock"
# - "~/.docker/config.json:/config.json" # Optional, for authentication if you have a Docker Hub account