diff --git a/compose.yml b/compose.yml index c1d5be85..3a3b4dde 100644 --- a/compose.yml +++ b/compose.yml @@ -22,34 +22,44 @@ services: ports: - "1081:1080" - minio: + rustfs: user: ${DOCKER_USER:-1000} - image: minio/minio + image: rustfs/rustfs:latest environment: - - MINIO_ROOT_USER=impress - - MINIO_ROOT_PASSWORD=password + - RUSTFS_ACCESS_KEY=rustfsadmin + - RUSTFS_SECRET_KEY=rustfsadmin + - RUSTFS_CONSOLE_ENABLE=true + - RUSTFS_ADDRESS=0.0.0.0:9000 + - RUSTFS_CONSOLE_ADDRESS=0.0.0.0:9001 + - RUSTFS_CORS_ALLOWED_ORIGINS=* + - RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS=* ports: - - '9000:9000' - - '9001:9001' + - "9000:9000" + - "9001:9001" healthcheck: - test: ["CMD", "mc", "ready", "local"] - interval: 1s - timeout: 20s - retries: 300 - entrypoint: "" - command: minio server --console-address :9001 /data + test: + [ + "CMD", + "sh", + "-c", + "curl -f http://127.0.0.1:9000/health && curl -f http://127.0.0.1:9001/rustfs/console/health", + ] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s volumes: - ./data/media:/data createbuckets: image: minio/mc depends_on: - minio: + rustfs: condition: service_healthy restart: true entrypoint: > sh -c " - /usr/bin/mc alias set impress http://minio:9000 impress password && \ + /usr/bin/mc alias set impress http://rustfs:9000 rustfsadmin rustfsadmin && \ /usr/bin/mc mb impress/impress-media-storage && \ /usr/bin/mc version enable impress/impress-media-storage && \ exit 0;" @@ -81,16 +91,16 @@ services: - ./src/backend:/app - ./data/static:/data/static depends_on: - postgresql: - condition: service_healthy - restart: true - mailcatcher: - condition: service_started - redis: - condition: service_started - createbuckets: - condition: service_started - + postgresql: + condition: service_healthy + restart: true + mailcatcher: + condition: service_started + redis: + condition: service_started + createbuckets: + condition: service_started + celery-dev: user: ${DOCKER_USER:-1000} image: impress:backend-development @@ -131,7 +141,7 @@ services: frontend-development: user: "${DOCKER_USER:-1000}" - build: + build: context: . dockerfile: ./src/frontend/Dockerfile target: impress-dev @@ -161,13 +171,13 @@ services: image: node:22 user: "${DOCKER_USER:-1000}" environment: - HOME: /tmp + HOME: /tmp volumes: - ".:/app" y-provider-development: user: ${DOCKER_USER:-1000} - build: + build: context: . dockerfile: ./src/frontend/servers/y-provider/Dockerfile target: y-provider-development @@ -209,7 +219,11 @@ services: - --health-enabled=true - --metrics-enabled=true healthcheck: - test: ['CMD-SHELL', 'exec 3<>/dev/tcp/localhost/9000; echo -e "GET /health/live HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n" >&3; grep "HTTP/1.1 200 OK" <&3'] + test: + [ + "CMD-SHELL", + 'exec 3<>/dev/tcp/localhost/9000; echo -e "GET /health/live HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n" >&3; grep "HTTP/1.1 200 OK" <&3', + ] start_period: 5s interval: 1s timeout: 2s @@ -223,7 +237,7 @@ services: KC_DB_PASSWORD: pass KC_DB_USERNAME: impress KC_DB_SCHEMA: public - PROXY_ADDRESS_FORWARDING: 'true' + PROXY_ADDRESS_FORWARDING: "true" ports: - "8080:8080" depends_on: diff --git a/docker/files/etc/nginx/conf.d/default.conf b/docker/files/etc/nginx/conf.d/default.conf index 072fdc28..3dc3e9d3 100644 --- a/docker/files/etc/nginx/conf.d/default.conf +++ b/docker/files/etc/nginx/conf.d/default.conf @@ -17,9 +17,9 @@ server { proxy_set_header X-Amz-Date $authDate; proxy_set_header X-Amz-Content-SHA256 $authContentSha256; - # Get resource from Minio - proxy_pass http://minio:9000/impress-media-storage/; - proxy_set_header Host minio:9000; + # Get resource from rustfs + proxy_pass http://rustfs:9000/impress-media-storage/; + proxy_set_header Host rustfs:9000; add_header Content-Security-Policy "default-src 'none'" always; } @@ -30,7 +30,7 @@ server { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Original-URL $request_uri; - + # Prevent the body from being passed proxy_pass_request_body off; proxy_set_header Content-Length ""; diff --git a/env.d/development/common b/env.d/development/common index f43d5779..de2fbf9d 100644 --- a/env.d/development/common +++ b/env.d/development/common @@ -27,9 +27,9 @@ IMPRESS_BASE_URL="http://localhost:8072" # Media STORAGES_STATICFILES_BACKEND=django.contrib.staticfiles.storage.StaticFilesStorage -AWS_S3_ENDPOINT_URL=http://minio:9000 -AWS_S3_ACCESS_KEY_ID=impress -AWS_S3_SECRET_ACCESS_KEY=password +AWS_S3_ENDPOINT_URL=http://rustfs:9000 +AWS_S3_ACCESS_KEY_ID=rustfsadmin +AWS_S3_SECRET_ACCESS_KEY=rustfsadmin MEDIA_BASE_URL=http://localhost:8083 # OIDC