fix(service): replace removed MinIO images with pgsty/silo

Closes #11975
This commit is contained in:
Andras Bacsai
2026-10-15 23:32:06 +02:00
parent 53b5e63b9d
commit d60d3a5b9d
20 changed files with 102 additions and 52 deletions
+1 -1
View File
@@ -730,7 +730,7 @@ class Service extends BaseModel
]);
}
$fields->put('Supabase', $data->toArray());
case $image->contains('minio'):
case $image->contains(['minio', 'pgsty/silo']):
$data = collect([]);
$console_url = $this->environment_variables()->where('key', 'MINIO_BROWSER_REDIRECT_URL')->first();
$s3_api_url = $this->environment_variables()->where('key', 'MINIO_SERVER_URL')->first();
+2
View File
@@ -81,6 +81,8 @@ const SPECIFIC_SERVICES = [
'minio/minio',
'ghcr.io/coollabsio/minio',
'coollabsio/minio',
'pgsty/silo',
'docker.io/pgsty/silo',
'svhd/logto',
'dxflrs/garage',
];
+1 -1
View File
@@ -676,7 +676,7 @@ function generateServiceSpecificFqdns(ServiceApplication|Application $resource)
$variables = collect($environment_variables);
$payload = collect([]);
switch ($type) {
case $type?->contains('minio'):
case $type?->contains(['minio', 'pgsty/silo']):
$MINIO_BROWSER_REDIRECT_URL = $variables->where('key', 'MINIO_BROWSER_REDIRECT_URL')->first();
$MINIO_SERVER_URL = $variables->where('key', 'MINIO_SERVER_URL')->first();
+2 -2
View File
@@ -316,13 +316,13 @@ services:
condition: service_started
minio:
image: minio/minio:RELEASE.2025-09-07T16-13-09Z
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z
environment:
- MINIO_ROOT_USER=${SERVICE_USER_MINIO}
- MINIO_ROOT_PASSWORD=${SERVICE_PASSWORD_MINIO}
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
test: ["CMD", "mc", "ready", "local"]
interval: 30s
timeout: 20s
retries: 3
+4 -4
View File
@@ -22,7 +22,7 @@ services:
retries: 10
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
command: server /data --console-address ":9001"
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
@@ -38,16 +38,16 @@ services:
retries: 10
createbuckets:
image: minio/mc:latest
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z
restart: no
depends_on:
minio:
condition: service_healthy
entrypoint: >
/bin/sh -c "
/usr/bin/mc config host add myminio http://minio:9000 $SERVICE_USER_MINIO $SERVICE_PASSWORD_MINIO;
/usr/bin/mc alias set myminio http://minio:9000 $SERVICE_USER_MINIO $SERVICE_PASSWORD_MINIO;
/usr/bin/mc mb -p myminio/azimutt;
/usr/bin/mc policy download myminio/azimutt;
/usr/bin/mc anonymous set download myminio/azimutt;
exit 0;
"
+1 -1
View File
@@ -66,7 +66,7 @@ services:
start_period: 10s
minio-service:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
volumes:
- minio_data:/data
environment:
+5 -5
View File
@@ -88,7 +88,7 @@ services:
start_period: 5s
minio:
image: 'minio/minio:RELEASE.2025-09-07T16-13-09Z'
image: 'pgsty/silo:RELEASE.2026-10-15T00-00-00Z'
command: 'server /data --console-address ":9001"'
environment:
- MINIO_ROOT_USER=${SERVICE_USER_MINIO}
@@ -98,16 +98,16 @@ services:
healthcheck:
test:
- CMD
- curl
- '-f'
- 'http://127.0.0.1:9000/minio/health/live'
- mc
- ready
- local
interval: 5s
timeout: 5s
retries: 12
start_period: 10s
minio-init:
image: 'minio/mc:RELEASE.2025-08-13T08-35-41Z'
image: 'pgsty/silo:RELEASE.2026-10-15T00-00-00Z'
depends_on:
minio:
condition: service_healthy
+2 -2
View File
@@ -86,7 +86,7 @@ services:
retries: 5
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
command: 'server /data --console-address ":9001"'
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
@@ -102,7 +102,7 @@ services:
retries: 10
minio-init:
image: 'minio/mc:RELEASE.2025-08-13T08-35-41Z' # Released at 2025-08-13T08-35-41Z
image: 'pgsty/silo:RELEASE.2026-10-15T00-00-00Z'
depends_on:
minio:
condition: service_started
+2 -2
View File
@@ -111,7 +111,7 @@ services:
start_period: 3s
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
command: server /data --console-address ":9001"
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
@@ -127,7 +127,7 @@ services:
retries: 10
minio-init:
image: minio/mc:latest
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z
depends_on:
minio:
condition: service_healthy
+1 -1
View File
@@ -15,7 +15,7 @@ services:
volumes:
- huly-db:/data/db
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
command: server /data --address ":9000" --console-address ":9001"
volumes:
- huly-files:/data
@@ -1,5 +1,5 @@
# ignore: true
# documentation: https://github.com/coollabsio/minio?tab=readme-ov-file#minio-docker-images
# documentation: https://silo.pigsty.io/docs/
# slogan: MinIO is a high performance object storage server compatible with Amazon S3 APIs.
# category: storage
# tags: object, storage, server, s3, api
@@ -7,7 +7,7 @@
services:
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
command: server /data --console-address ":9001"
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
+1 -1
View File
@@ -7,7 +7,7 @@
services:
minio:
image: quay.io/minio/minio:latest
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z
command: server /data --console-address ":9001"
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
+2 -2
View File
@@ -97,7 +97,7 @@ services:
# MinIO S3 Local server
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
command: server /data
environment:
- MINIO_ROOT_USER=${SERVICE_USER_MINIO}
@@ -112,7 +112,7 @@ services:
# S3 Bucket initialization
minio-init:
image: minio/mc:latest
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z
depends_on:
minio:
condition: service_healthy
+1 -1
View File
@@ -237,7 +237,7 @@ services:
# Comment this if you using any external s3 compatible storage
plane-minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z
command: server /export --console-address ":9090"
environment:
<<: *minio-env
+2 -2
View File
@@ -1870,12 +1870,12 @@ services:
- ALLOW_PLAINTEXT_LISTENER=yes
object_storage:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
environment:
- MINIO_ROOT_USER=$SERVICE_USER_MINIO
- MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO
entrypoint: sh
command: -c 'mkdir -p /data/posthog && minio server --address ":9000" --console-address ":9001" /data'
command: -c 'mkdir -p /data/posthog && silo server --address ":9000" --console-address ":9001" /data'
volumes:
- object_storage:/data
healthcheck:
+1 -1
View File
@@ -56,7 +56,7 @@ services:
retries: 10
minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
command: server /data --console-address ":9001"
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
+2 -2
View File
@@ -1311,7 +1311,7 @@ services:
command: >
sh -c "/app/bin/migrate && /app/bin/realtime eval 'Realtime.Release.seeds(Realtime.Repo)' && /app/bin/server"
supabase-minio:
image: ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z # Released on 15 October 2025
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z # Released on 15 October 2026
environment:
- MINIO_ROOT_USER=${SERVICE_USER_MINIO}
- MINIO_ROOT_PASSWORD=${SERVICE_PASSWORD_MINIO}
@@ -1325,7 +1325,7 @@ services:
- ./volumes/storage:/data
minio-createbucket:
image: minio/mc
image: pgsty/silo:RELEASE.2026-10-15T00-00-00Z
restart: "no"
environment:
- MINIO_ROOT_USER=${SERVICE_USER_MINIO}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,48 @@
<?php
use App\Models\EnvironmentVariable;
use App\Models\Server;
use App\Models\Service;
use App\Models\ServiceApplication;
use Symfony\Component\Yaml\Yaml;
it('does not use the removed upstream MinIO images in service templates', function () {
$removedImages = ['minio/minio', 'minio/mc', 'quay.io/minio/minio', 'quay.io/minio/mc', 'docker.io/minio/minio', 'docker.io/minio/mc'];
$offenders = [];
foreach (glob(dirname(__DIR__, 2).'/templates/compose/*.yaml') as $templatePath) {
$services = Yaml::parse(file_get_contents($templatePath))['services'] ?? [];
foreach ($services as $serviceName => $service) {
$imageName = str($service['image'] ?? '')->before(':')->before('@')->value();
if (in_array($imageName, $removedImages, true)) {
$offenders[] = basename($templatePath).": {$serviceName} uses {$service['image']}";
}
}
}
expect($offenders)->toBe([]);
});
it('treats MinIO-compatible images as MinIO services', function (string $image) {
$service = new Service;
$service->setRelation('server', new Server);
$service->setRelation('environment_variables', collect([
(new EnvironmentVariable)->forceFill(['key' => 'MINIO_BROWSER_REDIRECT_URL', 'value' => 'https://console.example.com']),
(new EnvironmentVariable)->forceFill(['key' => 'MINIO_SERVER_URL', 'value' => 'https://s3.example.com']),
]));
$application = (new ServiceApplication)->setRawAttributes(['image' => $image], sync: true);
$application->setRelation('service', $service);
expect($application->serviceType())->not->toBeNull()
->and(generateServiceSpecificFqdns($application)->all())->toBe([
'https://console.example.com:9001',
'https://s3.example.com:9000',
]);
})->with([
'pgsty/silo:RELEASE.2026-10-15T00-00-00Z',
'docker.io/pgsty/silo:RELEASE.2026-10-15T00-00-00Z',
'ghcr.io/coollabsio/minio:RELEASE.2025-10-15T17-29-55Z',
]);