You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using docker-compose pull or docker-compose up, non-critical log messages (e.g., progress updates, container recreation messages) are sent to stderr. This behavior causes CI/CD tools (e.g., Azure DevOps, GitLab CI/CD) to misinterpret these as errors, even when the commands execute successfully.
Impact
This behavior creates unnecessary complications in CI/CD pipelines, requiring workarounds like redirecting stderr to stdout (2>&1) or filtering logs. This not only leads to wasted time but also violates standard practices where stderr should be reserved exclusively for error messages.
Why This Matters
This behavior significantly disrupts CI/CD workflows, leading to wasted time troubleshooting false-positive errors. Fixing this would streamline integration and align Docker Compose with standard logging practices.
Thank you for addressing this issue promptly, as it heavily impacts automation in production environments.
Steps To Reproduce
Create a valid docker-compose.yml.
Run docker-compose pull or docker-compose up in a terminal or CI/CD environment.
Observe that progress updates and other non-critical logs are sent to stderr.
Compose Version
Docker Compose Version: 1.29.2
Docker Environment
Docker Version: 20.10.24+dfsg1, build 297e128
Anything else?
Adopt standard logging practices:
Use stdout for informational and non-critical log messages.
Reserve stderr for actual errors.
The text was updated successfully, but these errors were encountered:
Unfortunately POSIX only defines stdout and stderr, as the former is used for application logs, there's no better choice for compose but the latter to send status messages. Your CI/CD tools to consider any use os stderr as a proof or error, without considering process exit code as the source of truth is weird.
you can set COMPOSE_STATUS_STDOUT=true environment variable so that compose will use stdout to log information message.
Description
Problem Description
When using
docker-compose pull
ordocker-compose up
, non-critical log messages (e.g., progress updates, container recreation messages) are sent tostderr
. This behavior causes CI/CD tools (e.g., Azure DevOps, GitLab CI/CD) to misinterpret these as errors, even when the commands execute successfully.Impact
This behavior creates unnecessary complications in CI/CD pipelines, requiring workarounds like redirecting
stderr
tostdout
(2>&1
) or filtering logs. This not only leads to wasted time but also violates standard practices wherestderr
should be reserved exclusively for error messages.Why This Matters
This behavior significantly disrupts CI/CD workflows, leading to wasted time troubleshooting false-positive errors. Fixing this would streamline integration and align Docker Compose with standard logging practices.
Thank you for addressing this issue promptly, as it heavily impacts automation in production environments.
Steps To Reproduce
docker-compose.yml
.docker-compose pull
ordocker-compose up
in a terminal or CI/CD environment.stderr
.Compose Version
Docker Environment
Anything else?
Adopt standard logging practices:
stdout
for informational and non-critical log messages.stderr
for actual errors.The text was updated successfully, but these errors were encountered: