@@ -173,22 +173,41 @@ services:
173173 depends_on :
174174 - postgres
175175
176- minio :
177- image : bitnamilegacy/minio:${DC_MINIO_VERSION:-2024.7.16-debian-12-r0}
176+ # Due to previous use of minio and to ensure that data is correctly migrated, we need to
177+ # ensure that rustfs is able to access it. Rustfs runs under a different user than minio, so this
178+ # is a one-off run to fix permissions on the volume.
179+ rustfs_perms :
180+ image : alpine
181+ user : root
182+ volumes :
183+ - minio:/data
184+ command : chown -R 10001:10001 /data
185+
186+ rustfs :
187+ image : rustfs/rustfs:1.0.0-alpha.92
188+ depends_on :
189+ rustfs_perms :
190+ condition : service_completed_successfully
191+ command : " rustfs server /data"
178192 environment :
179- - MINIO_ROOT_USER=${MINIO_ROOT_USER:-minio}
180- - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD:-changeme }
181- - MINIO_DEFAULT_BUCKETS=cosmo
193+ RUSTFS_CONSOLE_ENABLE : ' true '
194+ RUSTFS_ACCESS_KEY : ${S3_ACCESS_KEY_ID:-admin }
195+ RUSTFS_SECRET_KEY : ${S3_SECRET_ACCESS_KEY:-changeme}
182196 ports :
183197 - ' 10000:9000'
184198 - ' 10001:9001'
185199 volumes :
186- - minio:/bitnami/minio/data
200+ # We've previously used minio for S3 provider. Since rustfs is storage-compatible
201+ # with minio, we want to reuse the existing minio volume so that existing data is kept.
202+ - minio:/data
187203 restart : unless-stopped
188204 networks :
189205 - primary
190206 profiles :
191207 - default
208+ post_start :
209+ - command : sh -c "sleep 10 && apk add minio-client && mcli alias set rustfs http://localhost:9000 ${S3_ACCESS_KEY_ID:-admin} ${S3_SECRET_ACCESS_KEY:-changeme} && mcli mb -p rustfs/cosmo"
210+ user : root
192211
193212 nats :
194213 image : nats:${DC_NATS_VERSION:-2.10.6}
@@ -235,10 +254,10 @@ services:
235254 NODE_ENV : development
236255 AUTH_JWT_SECRET : fkczyomvdprgvtmvkuhvprxuggkbgwld
237256 AUTH_ADMISSION_JWT_SECRET : uXDxJLEvrw4aafPfrf3rRotCoBzRfPEW
238- S3_STORAGE_URL : ${S3_STORAGE_URL:-http://${MINIO_ROOT_USER:-minio}:${MINIO_ROOT_PASSWORD:-changeme}@minio :9000/cosmo}
257+ S3_STORAGE_URL : ${S3_STORAGE_URL:-http://rustfs :9000/cosmo}
239258 S3_REGION : ${S3_REGION_CDN:-${S3_REGION:-auto}}
240- S3_ACCESS_KEY_ID : ${S3_ACCESS_KEY_ID}
241- S3_SECRET_ACCESS_KEY : ${S3_SECRET_ACCESS_KEY}
259+ S3_ACCESS_KEY_ID : ${S3_ACCESS_KEY_ID:-admin }
260+ S3_SECRET_ACCESS_KEY : ${S3_SECRET_ACCESS_KEY:-changeme }
242261 S3_FORCE_PATH_STYLE : ${S3_FORCE_PATH_STYLE:-true}
243262 ports :
244263 - ' 11000:11000'
@@ -301,10 +320,10 @@ services:
301320 KC_API_URL : ' http://keycloak:8080'
302321 KC_FRONTEND_URL : ' http://localhost:8080'
303322 PROMETHEUS_API_URL : ' http://admin:test@prometheus:9090/api/v1'
304- S3_STORAGE_URL : ${S3_STORAGE_URL:-http://${MINIO_ROOT_USER:-minio}:${MINIO_ROOT_PASSWORD:-changeme}@minio :9000/cosmo}
323+ S3_STORAGE_URL : ${S3_STORAGE_URL:-http://rustfs :9000/cosmo}
305324 S3_REGION : ${S3_REGION_CONTROLPLANE:-${S3_REGION:-auto}}
306- S3_ACCESS_KEY_ID : ${S3_ACCESS_KEY_ID}
307- S3_SECRET_ACCESS_KEY : ${S3_SECRET_ACCESS_KEY}
325+ S3_ACCESS_KEY_ID : ${S3_ACCESS_KEY_ID:-admin }
326+ S3_SECRET_ACCESS_KEY : ${S3_SECRET_ACCESS_KEY:-changeme }
308327 S3_FORCE_PATH_STYLE : ${S3_FORCE_PATH_STYLE:-true}
309328 CDN_BASE_URL : ' http://cdn:11000'
310329 REDIS_HOST : redis
0 commit comments