version: "3.9" services: minio: image: minio/minio:latest container_name: dmf-minio-server restart: always ports: - "${MINIO_API_PORT}:9000" - "${MINIO_CONSOLE_PORT}:9001" environment: MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID} MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY} volumes: - "${MINIO_DATA_PATH}:/data" command: server /data --console-address ":9001" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/ready"] interval: 5s timeout: 3s retries: 5 minio-init: image: minio/mc:latest depends_on: minio: condition: service_healthy environment: S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID} S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY} BUCKET_NAME: ${BUCKET_NAME} entrypoint: > /bin/sh -c " mc alias set local http://minio:9000 ${S3_ACCESS_KEY_ID} ${S3_SECRET_ACCESS_KEY} && mc mb -p local/${BUCKET_NAME} || true && mc ilm rule add --expire-days 1 local/${BUCKET_NAME} " redis: image: redis:latest container_name: dmf-redis environment: - REDIS_PASSWORD=${REDIS_PASSWORD} - REDIS_USER=${REDIS_USER} - REDIS_USER_PASSWORD=${REDIS_USER_PASSWORD} ports: - "${REDIS_PORT}:6379" volumes: - "${REDIS_DATA_PATH}:/data" command: > sh -c ' mkdir -p /usr/local/etc/redis && echo "bind 0.0.0.0" > /usr/local/etc/redis/redis.conf && echo "requirepass $REDIS_PASSWORD" >> /usr/local/etc/redis/redis.conf && echo "appendonly yes" >> /usr/local/etc/redis/redis.conf && echo "appendfsync everysec" >> /usr/local/etc/redis/redis.conf && echo "user default on nopass ~* +@all" > /usr/local/etc/redis/users.acl && echo "user $REDIS_USER on >$REDIS_USER_PASSWORD ~* +@all" >> /usr/local/etc/redis/users.acl && redis-server /usr/local/etc/redis/redis.conf --aclfile /usr/local/etc/redis/users.acl ' healthcheck: test: [ "CMD", "redis-cli", "-a", "$REDIS_PASSWORD", "ping" ] interval: 30s timeout: 10s retries: 5 restart: unless-stopped tty: true stdin_open: true