diff --git a/docker-compose.tmpl.yml b/docker-compose.tmpl.yml index e7a8e73..39fa533 100644 --- a/docker-compose.tmpl.yml +++ b/docker-compose.tmpl.yml @@ -12,7 +12,7 @@ x-base-app: &base-app networks: - internal - db-network - logging: + logging: &logging driver: gelf options: gelf-address: "udp://127.0.0.1:12201" @@ -42,6 +42,9 @@ services: environment: <<: *logging-env hive_service: api_app + # Temporary volume for the case when we need to debug the uploads migration, can be removed once the migration is done + volumes: + - upload_data:/old_data webhook_app: <<: *service-app @@ -57,14 +60,22 @@ services: <<: *logging-env hive_service: cron - img_upload_app: - image: beabee/pictshare:v0.3.0 + # MinIO service + minio: + image: beabee/beabee-minio:${HIVE_VERSION:-__VERSION__} restart: unless-stopped - environment: - URL: ${BEABEE_AUDIENCE}/uploads/ - CONTENTCONTROLLERS: ${BEABEE_UPLOAD_CONTENTCONTROLLERS:-IMAGE} volumes: - - upload_data:/var/www/data + - minio_data:/data + environment: + <<: *logging-env + hive_service: minio + MINIO_ROOT_USER: ${BEABEE_MINIO_ROOT_USER:-minioadmin} + MINIO_ROOT_PASSWORD: ${BEABEE_MINIO_ROOT_PASSWORD:-minioadmin} + MINIO_REGION: ${BEABEE_MINIO_REGION:-us-east-1} + BEABEE_MINIO_BUCKET: ${BEABEE_MINIO_BUCKET:-uploads} + BEABEE_MINIO_ENDPOINT: ${BEABEE_MINIO_ENDPOINT:-http://minio:9000} + logging: + <<: *logging networks: - internal @@ -77,6 +88,36 @@ services: <<: *logging-env hive_service: migration + # Uploads migration service, can be removed once the migration is done + uploads_migration: + image: beabee/beabee-api-app:${HIVE_VERSION:-__VERSION__} + command: > + /bin/sh -c " + if [ \"$${MIGRATE_UPLOADS}\" = \"true\" ]; then + echo 'Starting uploads migration...' && + yarn backend-cli migrate-uploads --source=/old_data; + else + echo 'Uploads migration skipped (MIGRATE_UPLOADS is not set to true)' && + exit 0; + fi + " + volumes: + - upload_data:/old_data + depends_on: + migration: + condition: service_completed_successfully + minio: + condition: service_healthy + environment: + <<: *logging-env + hive_service: uploads_migration + MIGRATE_UPLOADS: ${MIGRATE_UPLOADS:-true} # TODO: Disable this once the migration is done + env_file: + - stack.env + networks: + - internal + - db-network + # Helper to run commands (GELF logging disabled) run: <<: *base-app @@ -116,6 +157,13 @@ services: environment: LEGACY_APP_COOKIE_DOMAIN: ${BEABEE_COOKIE_DOMAIN} TRUSTED_ORIGINS: ${BEABEE_TRUSTEDORIGINS-} + volumes: + - upload_data:/old_data + depends_on: + - api_app + - app + - frontend + - webhook_app networks: - internal - traefik-ingress @@ -148,4 +196,5 @@ networks: volumes: upload_data: + minio_data: telegram-bot_data: diff --git a/docker-compose.yml b/docker-compose.yml index 4bdb3d6..e32114b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,7 +12,7 @@ x-base-app: &base-app networks: - internal - db-network - logging: + logging: &logging driver: gelf options: gelf-address: "udp://127.0.0.1:12201" @@ -42,6 +42,9 @@ services: environment: <<: *logging-env hive_service: api_app + # Temporary volume for the case when we need to debug the uploads migration, can be removed once the migration is done + volumes: + - upload_data:/old_data webhook_app: <<: *service-app @@ -57,14 +60,22 @@ services: <<: *logging-env hive_service: cron - img_upload_app: - image: beabee/pictshare:v0.3.0 + # MinIO service + minio: + image: beabee/beabee-minio:${HIVE_VERSION:-v0.27.4} restart: unless-stopped - environment: - URL: ${BEABEE_AUDIENCE}/uploads/ - CONTENTCONTROLLERS: ${BEABEE_UPLOAD_CONTENTCONTROLLERS:-IMAGE} volumes: - - upload_data:/var/www/data + - minio_data:/data + environment: + <<: *logging-env + hive_service: minio + MINIO_ROOT_USER: ${BEABEE_MINIO_ROOT_USER:-minioadmin} + MINIO_ROOT_PASSWORD: ${BEABEE_MINIO_ROOT_PASSWORD:-minioadmin} + MINIO_REGION: ${BEABEE_MINIO_REGION:-us-east-1} + BEABEE_MINIO_BUCKET: ${BEABEE_MINIO_BUCKET:-uploads} + BEABEE_MINIO_ENDPOINT: ${BEABEE_MINIO_ENDPOINT:-http://minio:9000} + logging: + <<: *logging networks: - internal @@ -77,6 +88,36 @@ services: <<: *logging-env hive_service: migration + # Uploads migration service, can be removed once the migration is done + uploads_migration: + image: beabee/beabee-api-app:${HIVE_VERSION:-v0.27.4} + command: > + /bin/sh -c " + if [ \"$${MIGRATE_UPLOADS}\" = \"true\" ]; then + echo 'Starting uploads migration...' && + yarn backend-cli migrate-uploads --source=/old_data; + else + echo 'Uploads migration skipped (MIGRATE_UPLOADS is not set to true)' && + exit 0; + fi + " + volumes: + - upload_data:/old_data + depends_on: + migration: + condition: service_completed_successfully + minio: + condition: service_healthy + environment: + <<: *logging-env + hive_service: uploads_migration + MIGRATE_UPLOADS: ${MIGRATE_UPLOADS:-true} # TODO: Disable this once the migration is done + env_file: + - stack.env + networks: + - internal + - db-network + # Helper to run commands (GELF logging disabled) run: <<: *base-app @@ -116,6 +157,13 @@ services: environment: LEGACY_APP_COOKIE_DOMAIN: ${BEABEE_COOKIE_DOMAIN} TRUSTED_ORIGINS: ${BEABEE_TRUSTEDORIGINS-} + volumes: + - upload_data:/old_data + depends_on: + - api_app + - app + - frontend + - webhook_app networks: - internal - traefik-ingress @@ -148,4 +196,5 @@ networks: volumes: upload_data: + minio_data: telegram-bot_data: