70 lines
2.2 KiB
YAML
70 lines
2.2 KiB
YAML
version: "3.9"
|
|
|
|
services:
|
|
minio:
|
|
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
|
|
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:RELEASE.2025-09-07T16-13-09Z
|
|
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: always
|
|
tty: true
|
|
stdin_open: true
|