Skip to content
This repository was archived by the owner on Nov 27, 2023. It is now read-only.
This repository was archived by the owner on Nov 27, 2023. It is now read-only.

docker-compose run does not detect EOF and hangs #1944

@jamieleecho

Description

@jamieleecho

Description
On receiving an EOF character, docker-compose should exit gracefully. Instead it seems to hang and needs to be stooped via ^C.

Ideally, running docker-compose on a Mac to receive input from the Mac should quit gracefully after the EOF character is received. But what is happening instead is that the command hangs and has to be forcefully quit via Control-C

Example docker-compose.yml file

version: '3'

services:
  ubuntu:
    image: ubuntu:18.04

Steps to reproduce the issue:

  1. Use the above docker-compose.yml file
  2. echo hello | docker-compose run ubuntu cat

Describe the results you received:
It prints hello twice and hangs

jamie@Jcho-mbp13 tmp % echo hello | docker-compose run ubuntu cat
hello
hello
^C^CERRO[0003] got 3 SIGTERM/SIGINTs, forcing shutdown      
jamie@Jcho-mbp13 tmp % 

Describe the results you expected:
It should printhello once and exit

jamie@Jcho-mbp13 tmp % echo hello | docker-compose run ubuntu cat
hello
jamie@Jcho-mbp13 tmp % 

Additional information you deem important (e.g. issue happens only occasionally):
Happens 100% of the time
Seems related to:
docker/compose#3829
https://github.com/docker/compose-cli/issues/1894

**Output of docker-compose --version: ***

Docker Compose version v2.0.0-beta.6

Output of docker version:

Client:
 Cloud integration: 1.0.17
 Version:           20.10.7
 API version:       1.41
 Go version:        go1.16.4
 Git commit:        f0df350
 Built:             Wed Jun  2 11:56:22 2021
 OS/Arch:           darwin/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.7
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       b0f5bc3
  Built:            Wed Jun  2 11:54:58 2021
  OS/Arch:          linux/amd64
  Experimental:     true
 containerd:
  Version:          1.4.6
  GitCommit:        d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc:
  Version:          1.0.0-rc95
  GitCommit:        b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Output of docker context show:
You can also run docker context inspect context-name to give us more details but don't forget to remove sensitive content.

default

Output of docker info:

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)
  compose: Docker Compose (Docker Inc., v2.0.0-beta.6)
  scan: Docker Scan (Docker Inc., v0.8.0)

Server:
 Containers: 422
  Running: 21
  Paused: 0
  Stopped: 401
 Images: 101
 Server Version: 20.10.7
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d71fcd7d8303cbf684402823e425e9dd2e99285d
 runc version: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
 Kernel Version: 5.10.25-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 1.942GiB
 Name: docker-desktop
 ID: NEDR:HX2N:I5LS:TJHJ:DT25:WVI5:6S3C:34R3:HOQB:7V3E:46ZE:FYRT
 Docker Root Dir: /var/lib/docker
 Debug Mode: true
  File Descriptors: 240
  Goroutines: 233
  System Time: 2021-07-23T01:45:15.4657041Z
  EventsListeners: 3
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: true
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Default Address Pools:
   Base: 192.168.128.0/17, Size: 24

Additional environment details (AWS ECS, Azure ACI, local, etc.):

Metadata

Metadata

Assignees

No one assigned

    Labels

    compatibilityCompatibility with docker-compose

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions