pydio/docker-compose.yml

144 lines
3.5 KiB
YAML

version: '3.9'
volumes:
cells_dir:
name: pydio_cells_dir
mysql_data:
name: pydio_mysql_data
caddy_data:
name: pydio_caddy_data
caddy_logs:
name: pydio_caddy_logs
caddy_config:
name: pydio_caddy_config
networks:
pydio-network:
name: pydio_network
services:
# MySQL DB
mysql:
image: mysql:8.0.32
container_name: pydio_mysql
restart: unless-stopped
expose: [3306]
volumes:
- mysql_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=cells
- MYSQL_DATABASE=cells
- MYSQL_USER=${MYSQL_DB_USER}
- MYSQL_PASSWORD=${MYSQL_DB_PASSWORD}
command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci]
networks:
- pydio-network
# Mongo DB
mongo:
image: mongo:6.0.4
container_name: pydio_mongo
restart: unless-stopped
expose: ["27017"]
networks:
- pydio-network
# Nats events broker
nats:
image: nats:2.9.15
container_name: pydio_nats
restart: unless-stopped
expose:
- "4222"
- "8222"
#for verbose, use "--http_port 8222 -V"
command: "--http_port 8222"
networks:
- pydio-network
redis:
image: redis:7.0.9
container_name: pydio_redis
hostname: redis
restart: unless-stopped
expose: ["6379"]
networks:
- pydio-network
minio:
image: minio/minio:RELEASE.2023-02-27T18-10-45Z
command: [ "server", "/data", "--console-address", ":9001" ]
restart: unless-stopped
container_name: pydio_minio
hostname: minio
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
expose:
- "9000"
ports:
- "9001:9001"
volumes:
- ${MINIO_STORE_DATA}:/data
networks:
- pydio-network
createbuckets:
image: minio/mc:RELEASE.2023-02-28T00-12-59Z
container_name: pydio_create_buckets
depends_on:
- minio
entrypoint: >
/bin/sh -c "
/usr/bin/mc config host add myminio http://minio:9000 ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD};
/usr/bin/mc mb myminio/pydiods1;
/usr/bin/mc mb myminio/personal;
/usr/bin/mc mb myminio/cellsdata;
/usr/bin/mc mb myminio/thumbs;
/usr/bin/mc mb myminio/versions;
/usr/bin/mc mb myminio/binaries;
exit 0;
"
networks:
- pydio-network
cells:
image: pydio/cells:4.1.1
restart: unless-stopped
hostname: cells
container_name: pydio_cells
expose: [80]
environment:
- CELLS_WORKING_DIR=/var/cells
- CELLS_BROKER=nats://nats:4222
- CELLS_CACHE=redis://redis:6379
- CELLS_BIND=0.0.0.0:80
- CELLS_SITE_EXTERNAL=https://${PUBLIC_FQDN}
- CELLS_NO_TLS=1
- CELLS_INSTALL_YAML=/pydio/config/install.yml
- INSTALL_MYSQL_DB_USER=${MYSQL_DB_USER}
- INSTALL_MYSQL_DB_PASSWORD=${MYSQL_DB_PASSWORD}
- INSTALL_MINIO_ROOT_USER=${MINIO_ROOT_USER}
- INSTALL_MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
volumes:
- ./conf/install-conf.yml:/pydio/config/install.yml
- cells_dir:/var/cells
networks:
- pydio-network
# Caddy reverse proxy, exposed as self-signed on port 445
caddy:
image: caddy:2.6.4-alpine
container_name: pydio_caddy
ports: ["8080:8080"]
restart: unless-stopped
volumes:
- ./conf/Caddyfile:/etc/caddy/Caddyfile
- caddy_logs:/var/caddy/logs
- caddy_data:/data
- caddy_config:/config
networks:
- pydio-network