# https://www.datanovia.com/en/lessons/docker-compose-wait-for-container-using-wait-tool/docker-compose-wait-for-mysql-container-to-be-ready/ # todo add wait on db version: '3' # networks: # default: # external: # name: nextcloud_net services: nextcloud-db: image: mariadb:latest container_name: nextcloud-db hostname: nextcloud-db command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb_read_only_compressed=OFF restart: unless-stopped env_file: ${ENV_FILE} volumes: - ${HOST_NEXTCLOUD_DB:-db}:/var/lib/mysql # # nextcloud-db-admin: # image: phpmyadmin:latest # container_name: nextcloud-db-admin # depends_on: # - nextcloud-db # links: # - nextcloud-db:db # environment: # PMA_HOST: db # PMA_PORT: 3306 # PMA_ARBITRARY: 1 # restart: unless-stopped # ports: # - 8081:80 nextcloud-redis: image: redis:alpine container_name: nextcloud-redis depends_on: - nextcloud-db hostname: nextcloud-redis restart: unless-stopped nextcloud-app: image: uci-nextcloud-app build: context: . container_name: nextcloud-app hostname: nextcloud-app restart: ${RESTART:-unless-stopped} privileged: true env_file: ${ENV_FILE} environment: - NEXTCLOUD_INSTALL - MYSQL_HOST=nextcloud-db - REDIS_HOST=nextcloud-redis - NEXTCLOUD_DATA_DIR=/var/www/data - OVERWRITEPROTOCOL=https - OVERWRITECLIURL=${NEXTCLOUD_DOMAIN} depends_on: - nextcloud-db - nextcloud-redis volumes: - ${HOST_NEXTCLOUD_SRC:-app}:/app - ${HOST_NEXTCLOUD_USERFILES:-user-files}:/user-files nextcloud-web: image: caddy:latest container_name: nextcloud-web hostname: nextcloud-web restart: unless-stopped depends_on: - nextcloud-app ports: - 8080:80 links: - nextcloud-app # volumes_from: # - nextcloud-app:ro volumes: - ./.Caddyfile:/etc/caddy/Caddyfile - ${HOST_NEXTCLOUD_SRC:-app}:/var/www/html:ro # - ${HOST_NEXTCLOUD_SRC}:/var/www/html:ro # # collabora: # image: collabora/code:latest # container_name: nextcloud-collabora # restart: unless-stopped # volumes: # # make sure these exist on your host # - /etc/localtime:/etc/localtime # - /etc/timezone:/etc/timezone # ports: # - "9980:9980" # depends_on: # - nextcloud-web # environment: # - 'server_name=${NEXTCLOUD_DOMAIN}' # - 'dictionaries=${COLLABRA_DICTIONARIES:-en_US}' # - extra_params=--o:ssl.enable=true --o:ssl.termination=false # cap_add: # - MKNOD # tty: true # # nextcloud-cron: # image: nextcloud:fpm-alpine # container_name: nextcloud-cron # hostname: nextcloud-cron # restart: unless-stopped # env_file: ${ENV_FILE} # environment: # - MYSQL_HOST=nextcloud-db # - REDIS_HOST=nextcloud-redis # - NEXTCLOUD_DATA_DIR=/var/www/data # - OVERWRITEPROTOCOL=https # - OVERWRITECLIURL=${NEXTCLOUD_DOMAIN} # volumes: # - ${HOST_NEXTCLOUD_SRC:-app}:/var/www/html # - ${HOST_NEXTCLOUD_USERFILES:-user-files}:/var/www/data # entrypoint: /cron.sh # depends_on: # - nextcloud-app # if bindings are desired then uncomment out driver and driveropts for a volume # YOU MUST FIRST move volumes to this location volumes: db: # driver: local # driver_opts: # o: bind # type: none # device: ${HOST_NEXTCLOUD_DB} app: # driver: local # driver_opts: # o: bind # type: none # device: ${HOST_NEXTCLOUD_SRC} user-files: # driver: local # driver_opts: # o: bind # type: none # device: ${HOST_NEXTCLOUD_USERFILES}