Hallo Ralf, ich habe es nicht erwähnt weil es für mich selbstverständlich ist alles über docker-compose zu starten.
Die Linux Pakete kann ich nicht nutze ich nicht da ich eGroupware auf meiner Qnap laufen lasse.
Ich vermute du empfiehlst das ich mir die Compose Files z.b. über apt installiere. Das geht mit der Qnap so nicht.
Deshalb habe ich mir vor Jahren das compose File direkt in ein Ordner kopiert. Die Overlay Files habe ich deshalb auch nicht.
Ich habe deshalb mein Compose File erweitert.
Entsprechend habe ich mir die nötigen Zeiten aus einer egw yml Datei rein kopiert.
Wenn ich die Datei von dir vergleiche sehe ich das ich noch command… drin stehen hatte.
Das muss aber so irgendwo bei Egropware dokumentiert sein.
Ich habe das auskommentiert aber der Container geht trotzdem noch in den restart.
Irgendwie scheine ich ein Brett vor dem Kopf zu haben.
Ok jetzt läuft es seit 5 Minuten stabil ich werde es beobachten.
bei mir stand latest-alpine was ich gegen latest ersetzt habe.
push:
image: phpswoole/swoole:latest-alpine
command:
- /var/www/server.php
version: '3'
volumes:
sources:
db:
data:
driver_opts:
type: none
o: bind
# to upgrade an existing non-docker installation most easy is to use the existing
# data directory /var/lib/egroupware AND the host database see below
#device: /var/lib/egroupware
# otherwise data is stored in data subdirectory of the current directory
device: $PWD/data
# extra sources with apps not part of egroupware container
extra:
driver_opts:
type: none
o: bind
# location of deprecated EGroupware packages like Wiki, SiteMgr, KnowledgeBase
device: $PWD/extra
# sources for push server, swoolpush subdirectory of egroupware
sources-push:
driver_opts:
type: none
o: bind
device: $PWD/extra/egroupware/swoolepush
# volume to store config.inc.php file / token shared between egroupware and push container
push-config:
sessions:
# collabora-config
collabora-config:
driver_opts:
type: none
o: bind
# to upgrade an existing non-docker installation most easy is to use the existing
# data directory /var/lib/egroupware AND the host database see below
#device: /var/lib/egroupware/default/loolwsd
# otherwise data is stored in data subdirectory of the current directory
device: $PWD/data/default/loolwsd
# for Mac and Windows, do NOT use a directory for the DB, as the Docker host is in a VM!
db:
sessions:
# cache files from compose, npm and yarn (actually /root inside the container)
cache:
# store Rocket.Chat MongoDB on an (internal) Volume
mongo:
# directory to store MongoDB dumps
rocketchat-dumps:
driver_opts:
type: none
o: bind
device: $PWD/data/default/rocketchat/dump
rocketchat-uploads:
driver_opts:
type: none
o: bind
device: $PWD/data/default/rocketchat/uploads
services:
egroupware:
# EPL image: download.egroupware.org/egroupware/epl:latest
image: egroupware/egroupware:latest
#image: egroupware/egroupware/epl:latest
# setting a default language for a new installation
#environment:
#environment:
#- TZ=Europe/Berlin
#- LANG=de
volumes:
- sources:/usr/share/egroupware
# extra-sources rsync from entry-point into sources
- extra:/usr/share/egroupware-extra
- data:/var/lib/egroupware
- sessions:/var/lib/php/sessions
- cache:/root
- push-config:/var/lib/egroupware-push
# if you want to use the host database:
# 1. comment out the whole db service below AND
# 2. set EGW_DB_HOST=localhost AND
# 3. uncomment the next line and modify the host path (first one), it depends on your distro:
# - RHEL/CentOS /var/lib/mysql/mysql.sock
# - openSUSE/SLE /var/run/mysql/mysql.sock
# - Debian/Ubuntu /var/run/mysqld/mysqld.sock
#- /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock
environment:
#- TZ=Europe/Berlin
- TZ=UTC
# MariaDB/MySQL host to use: for internal service use "db", for host database (socket bind-mounted into container) use "localhost"
- EGW_DB_HOST=db
# grant host is needed for NOT using localhost / unix domain socket for MySQL/MariaDB
- EGW_DB_GRANT_HOST=172.%
#- EGW_DB_GRANT_HOST=192.168.%
# for internal db service you should to specify a root password here AND in db service
# a database "egroupware" with a random password is created for you on installation (password is stored in header.inc.php in data directory)
- EGW_DB_ROOT=root
- EGW_DB_ROOT_PW=secret
# alternativly you can specify an already existing database with full right by the given user!
- EGW_DB_NAME=egroupware
- EGW_DB_USER=egroupware
#- EGW_DB_PASS=
#- EGW_DB_PASS=IopEw_(5CoVMrV&# -> eawZx?14#wUzPHbl
# further post_install.php arguments can be passed as a single enviroment variable with space separated assignments
# "<name1>=<value1> <name2>=<value2>" see https://github.com/EGroupware/egroupware/blob/master/doc/rpm-build/post_install.php#L17
# to configure eg. LDAP for authentication and account storage use
#- EGW_POST_INSTALL='account-auth=ldap,ldap ldap_base=ou=egroupware,dc=example,dc=org ldap_host=tls://ldap.example.org ldap_admin=cn=admin,$base ldap_admin_pw=secret ldap_context=cn=users,$base ldap_group_context=cn=groups,$base'
restart: always
depends_on:
- db
container_name: egroupware
# set the ip-address of your docker host AND your official DNS name so EGroupware
# can access Rocket.Chat or Collabora without the need to go over your firewall
#extra_hosts:
#- "my.host.name:ip-address"
phpmyadmin:
restart: unless-stopped
#networks:
# - egroupware-docker_default
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
hostname: phpmyadmin
ports:
# - "127.0.0.1:8000:80"
- "8086:80"
# pre 20.1 installs run MariaDB on the host and need to pass the socket (to use egroupware user and it's password only valid on localhost)
#volumes:
# - /var/run/mysqld/mysqld.sock:/tmp/mysql.sock
environment:
# PMA_HOST: use localhost, if you use a socket (pre 20.1 install) or db for 20.1+ installations
- PMA_HOST=db
#- PMA_ABSOLUTE_URI=https://example.org/phpmyadmin/
nginx:
image: nginx:stable-alpine
environment:
- TZ=UTC
#- TZ=Europe/Berlin
volumes:
- sources:/usr/share/egroupware:ro
# to add a certificate create a certificate.pem containing (in that order)
# 1. private key
# 2. public key
# 3. (optional) chain certificates
# uncomment to the next line
# ./certificate.pem:/etc/ssl/private/certificate.pem
# AND uncomment the three lines starting with "listen 443", "ssl_certificate", "ssl_certificate_key" in nginx.conf
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
ports:
# if no webserver is running on the host, change (first) number to 80 or 443
- "8083:80"
- "4443:443"
depends_on:
- egroupware
- push
#- collabora-key
#- rocketchat
container_name: egroupware-nginx
# run an own MariaDB:10.4 (you can use EGroupware's database backup and restore to add your existing database)
db:
image: mariadb
environment:
- MYSQL_ROOT=root
- MYSQL_ROOT_PASSWORD=secret
- MARIADB_AUTO_UPGRADE=true
#- TZ=Europe/Berlin
- TZ=UTC
volumes:
- db:/var/lib/mysql
container_name: egroupware-db
# make mysql also available on the host
#ports:
#- "3306:3306"
# push server using phpswoole
push:
image: phpswoole/swoole:latest-alpine
command:
- /var/www/server.php
volumes:
- sources-push:/var/www
- sessions:/var/lib/php/sessions
- push-config:/var/lib/egroupware-push
container_name: egroupware-push
restart: always
depends_on:
- egroupware
# automatic updates of all containers daily at 4am
# see https://containrrr.github.io/watchtower for more information
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# For automatic EPL Updates you need to add your credentials here too
environment:
- WATCHTOWER_CLEANUP=true # delete old image after update to not fill up the disk
#- REPO_USER="your-repo-username"
#- REPO_PASS="your-repo-password"
# for email notifications add your email and mail-server here
#- WATCHTOWER_NOTIFICATIONS=email
#- WATCHTOWER_NOTIFICATIONS_LEVEL=info # possible values: panic, fatal, error, warn, info or debug
#- WATCHTOWER_NOTIFICATION_EMAIL_FROM="watchtower@my-domain.com"
#- WATCHTOWER_NOTIFICATION_EMAIL_TO="me@my-domain.com"
#- WATCHTOWER_NOTIFICATION_EMAIL_SERVER="mail.my-domain.com" # if you give your MX here, you need no user/password
#- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=25
#- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER="watchtower@my-domain.com"
#- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD="secret"
command: --schedule "0 0 4 * * *"
container_name: egroupware-watchtower
restart: always
# Collabora Online Office
# collabora-key:
# image: "quay.io/egroupware/collabora-key:stable"
# #image: collabora/code:latest
# # needs to be initialised via: docker run --rm -v dev_collabora-config:/mnt --entrypoint '/bin/cp -r /etc/loolwsd /mnt' quay.io/egroupware/collabora-key:stable
# volumes:
# - collabora-config:/etc/loolwsd
# # dont try to regenerate the (not used certificate) as volumn is readonly
# environment:
# - DONT_GEN_SSL_CERT=1
# restart: always
# container_name: collabora-key
# set the ip-address of your docker host AND your official DNS name so Collabora
# can access EGroupware without the need to go over your firewall
#extra_hosts:
#- "my.host.name:ip-address"