mirror of
https://github.com/coollabsio/coolify.git
synced 2026-11-06 13:10:37 -04:00
fix(service): replace removed MinIO images with pgsty/silo
Closes #11975
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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',
|
||||
];
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
"
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
]);
|
||||
Reference in New Issue
Block a user