mirror of
https://github.com/coollabsio/coolify.git
synced 2026-10-28 17:44:36 +08:00
Sentry self-hosted (getsentry/self-hosted 26.8.0) could not be deployed as a Docker Compose application. Three separate problems blocked it: - YAML collection aliases: the first fix raised the limit to 256 only in Application::oldRawParser(). The safety check added in v4.4.0 (validateDockerComposeForInjection) and all other Compose parse calls still used the Symfony default of 128, so the Sentry file (133 aliases) failed with "Maximum number of collection aliases (128) exceeded". Add parseDockerComposeYaml() and use it for every Compose parse. - Argument list too long: the deployment job sent the generated Compose file as base64 inside the SSH command. Linux limits one argument to 128 KiB, and the Sentry file is about 370 KB. execute_remote_command() now accepts an 'input' key that streams content over SSH stdin, and the job writes the Compose file with it. - A list-style build arg without a value (build.args: [SENTRY_IMAGE]) merged into a map environment kept its numeric key, so Docker Compose rejected the file with "non-string key in ...environment: 0". It now becomes NAME with no value, as in Compose. Closes #11725
14 lines
500 B
PHP
14 lines
500 B
PHP
<?php
|
|
|
|
it('keeps bare list-style build args as named keys when merged into a map environment', function () {
|
|
$environment = collect(['SENTRY_CONF' => '/etc/sentry', 'SENTRY_IMAGE' => 'getsentry/sentry'])
|
|
->merge(['SENTRY_IMAGE', 'DOCKER_PLATFORM', 'FOO=bar']);
|
|
|
|
expect(convertToKeyValueCollection($environment)->all())->toBe([
|
|
'SENTRY_CONF' => '/etc/sentry',
|
|
'SENTRY_IMAGE' => 'getsentry/sentry',
|
|
'DOCKER_PLATFORM' => null,
|
|
'FOO' => 'bar',
|
|
]);
|
|
});
|