Open stuartpb opened 10 years ago
echo foo | sudo docker run progrium/buildstep cat
gives no output, wtf
And it's not sudo, this happens when run as root directly as well
dotcloud/docker#7142 claims adding -i
should fix it, but it doesn't (dotcloud/docker#7143).
How is -i
not working?
libcontainer|master ⇒ git archive HEAD | docker run -i ubuntu:14.04 /bin/bash -c "mkdir -p /app && tar -xC /app"
libcontainer|master ⇒ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
libcontainer|master ⇒ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b71dbf644fd7 ubuntu:14.04 "/bin/bash -c 'mkdir 7 seconds ago Exited (0) 6 seconds ago evil_ptolemy
d34e448971fb ubuntu:14.04 "/bin/bash -c 'mkdir 17 seconds ago Exited (2) 16 seconds ago kickass_hopper
16900e8ca046 ubuntu:14.04 "bash -c 'echo start 2 minutes ago Exited (0) 2 minutes ago focused_euclid
07b69fbab6c2 ubuntu:14.04 "bash -c 'echo start 2 minutes ago Exited (0) 2 minutes ago cranky_nobel
libcontainer|master ⇒ docker commit b71dbf644fd7
cbbb86058a73308e95a58edcc99d01258cea6c8c5fc5f5cdea8a48230194611a
libcontainer|master ⇒ docker run -ti cbbb86058a73308e95a58edcc99d01258cea6c8c5fc5f5cdea8a48230194611a bash
root@3233cab43416:/# ls
app bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@3233cab43416:/# cd app
root@3233cab43416:/app# ls
CONTRIBUTORS_GUIDE.md NOTICE apparmor container.go namespaces sample_configs system
Dockerfile PRINCIPLES.md cgroups devices netlink security types.go
LICENSE README.md config.go factory.go network selinux utils
MAINTAINERS ROADMAP.md config_test.go label nsinit state.go
MAINTAINERS_GUIDE.md api_temp.go console mount process.go syncpipe
root@3233cab43416:/app# exit
exit
libcontainer|master ⇒
It doesn't work with -a stdin
. See dotcloud/docker#7143.
Why are you using -a stdin
in the first place?
See https://github.com/progrium/buildstep/blob/master/buildstep - it's to get the container ID.
ok, i understand now, thanks.
This is a weird issue. I remember getting this right took a while in Docker when it was released before I could make this (and Dokku). But it does work now (as in, many people use Dokku and buildstep), so I'm curious what's special about this case?
It's a regression in Docker iirc: docker/docker#7143
Also iirc this doesn't affect Dokku because Dokku always uses -i
(as does plushu-buildstep, which works around this bug by using --cidfile
).
Any news/developments on this issue?
Ask docker/docker#7143
I wonder if it could be that this is not docker related at all. The same message gets shown when the ruby buildpack can't complete the download of the requested ruby version in time (default is 30 seconds). Since curl pipes it output directly to tar there's no clean way to recover and tar sees an incomplete archive.
This error was definitely caused y Docker. There are other things that will cause stdin to not look like a tar archive, but not connecting it at all is the simplest of them, and different from a premature interruption. Again, see docker/docker#7143.
From a Git repository where I have an app:
I have no idea what's going wrong.
git archive HEAD | /bin/bash -c "mkdir -p /tmp/app && tar -xC /tmp/app"
on the host system works just fine, so it doesn't appear to be an issue withgit archive
.