-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Closed
Labels
Description
Description
docker compose exec prints an extra newline character in stderr that is not output by the command itself if it returns a non-zero exit status. This is inconsistent with docker exec, which never does that. docker compose exec also does not show this behavior if the command returns a zero exit status.
Steps To Reproduce
On ubuntu 24.04 with CE versions of docker and docker compose:
% echo '{"services":{"debian":{"image":"debian:12","command":["sleep","infinity"]}}}' | docker compose -p debian -f - up -d
[+] Running 2/2
✔ Network debian_default Created 0.0s
✔ Container debian-debian-1 Started 0.1s
% docker exec debian-debian-1 false
% docker exec debian-debian-1 true
% docker compose -p debian exec -T debian true
% docker compose -p debian exec -T debian false
%
Notice the extra newline in stderr when executing false, which does neither emit any chars to stdout or stderr on its own.
Compose Version
Docker Compose version v2.36.2
Docker Environment
Client: Docker Engine - Community
Version: 28.2.2
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.24.0
Path: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.36.2
Path: /usr/libexec/docker/cli-plugins/docker-compose
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.1
Path: /home/XXXX/.docker/cli-plugins/docker-sbom
Server:
Containers: 69
Running: 59
Paused: 0
Stopped: 10
Images: 1296
Server Version: 28.2.2
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: systemd
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
CDI spec directories:
/etc/cdi
/var/run/cdi
Swarm: inactive
Runtimes: sysbox sysbox-runc crun io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 05044ec0a9a75232cad458027ca83437aae3f4da
runc version: v1.2.5-0-g59923ef
init version: de40ad0
Security Options:
apparmor
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.11.0-26-generic
Operating System: Ubuntu 24.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 16
Total Memory: 30.01GiB
Name: XXXX
ID: XXXX
Docker Root Dir: /var/lib/docker
Debug Mode: false
Experimental: true
Insecure Registries:
::1/128
127.0.0.0/8
Registry Mirrors:
https://mirror.gcr.io/
Live Restore Enabled: false
Default Address Pools:
Base: 10.252.0.0/16, Size: 24
Anything else?
No response