Closed yikaus closed 9 years ago
I ran into this too on boot2docker and wasn't able to figure it out. I either restarted or recreated the VM and it was fine. Let's keep tracking it here though in case anybody else runs into it.
On Wed, Jun 24, 2015 at 5:55 PM, Kevin Yi notifications@github.com wrote:
Tried envy under video instruction on a AWS ec2 instance with debian jessie installed.
Start envy container all good (host ssh moved to 2222)
docker run -d --privileged --name envy -v /mnt/data -v /var/run/docker.sock:/var/run/docker.sock -p 80:80 -p 22:22 -e HOST_DATA=/mnt/data progrium/envy
try to ssh with my github key got below error ssh -i ~/.ssh/github.pem yikaus@x.x.x.x
FATA[0000] Error response from daemon: Cannot start container a99166b44939e8508228a828a57e319e298ecb6cb6865f6821f94ea0d9bbe24c: [8] System error: not a directory
server end looks all right :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a097e0f61d36 jpetazzo/dind:latest "wrapdocker" 30 seconds ago Up 29 seconds yikaus.yikaus
30784eb3c15b progrium/envy:latest "codep '/bin/execd - 38 seconds ago Up 37 seconds 0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp envy
Any idea on this issue ?
Thanks Kevin
— Reply to this email directly or view it on GitHub https://github.com/progrium/envy/issues/8.
Jeff Lindsay http://progrium.com
It was my mistake on missing the volume mapping , should be -v /mnt/data:/data . all good now
Sorry for giving a confusing report
Ah, I didn't catch that. Pretty good though for there not being docs.
I've just tried envy and get this error, I've ensured the volume exists and is correct (matches HOST_DATA), but I still get a system error
Please share more information. Are you using boot2docker? Cloud VM? What distro? etc...
On Thu, Aug 20, 2015 at 9:05 AM, Simon Thulbourn notifications@github.com wrote:
I've just tried envy and get this error, I've ensured the volume exists and is correct (matches HOST_DATA), but I still get a system error
— Reply to this email directly or view it on GitHub https://github.com/progrium/envy/issues/8#issuecomment-133020190.
Jeff Lindsay http://progrium.com
@progrium docker-machine, using the boot2docker ISO (1.8.1), VMware Fusion 7.
Worth noting after destroying the VM and trying again worked.
docker run -d --name envy -v /mnt/data:/data \ -v /var/run/docker.sock:/var/run/docker.sock \ -p 80:80 -p 22:22 \ -e HOST_DATA=/mnt/data \ progrium/envy
works
Try use different directory failed with not a directory exception
docker run -d --name envy -v /mnt/envy:/envy \ -v /var/run/docker.sock:/var/run/docker.sock \ -p 80:80 -p 22:22 \ -e HOST_DATA=/mnt/envy \ progrium/envy
seems like /mnt/data hardcode somewhere
Same problem for me. Running on a Digital Ocean "Docker 1.8.2 on 14.04" droplet.
I had to start envy with the above mentioned
docker run -d --name envy -v /mnt/data:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
-p 80:80 -p 22:22 \
-e HOST_DATA=/mnt/data \
progrium/envy
Then:
> ssh remmelt@178.62.208.4
FATA[0000] Error response from daemon: Cannot start container ad655f033d6676eb0cecdc81357d54f4082eb48d214f6c11f42d219aa6acb301: 4c579a791068e9b71bafc9d38aacdbf0e0a56b079450fd961c01d5070f89464d is not a valid running container to join
Connection to 178.62.208.4 closed.
On the DO host:
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c579a791068 jpetazzo/dind "wrapdocker" About a minute ago Restarting (1) 10 seconds ago remmelt.remmelt
8de790157644 progrium/envy "codep '/bin/execd -e" 2 minutes ago Up About a minute 0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp envy
> docker logs 4c
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:32:17.143359619Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:32:17.143583910Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:32:17.515842955Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:32:17.515973181Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:32:18.058992336Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:32:18.059165838Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:32:19.004527431Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:32:19.004799753Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:32:20.759315981Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:32:20.759644896Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:32:24.139899887Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:32:24.140096679Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:32:30.697334749Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:32:30.697984166Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:32:43.650628118Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:32:43.650849168Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:33:09.431823801Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:33:09.432070403Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
ln: failed to create symbolic link '/sys/fs/cgroup/systemd/name=systemd': Operation not permitted
time="2015-09-18T13:34:00.795791556Z" level=error msg="[graphdriver] prior storage driver \"btrfs\" failed: prerequisites for driver not satisfied (wrong filesystem?)"
time="2015-09-18T13:34:00.796014912Z" level=fatal msg="Error starting daemon: error initializing graphdriver: prerequisites for driver not satisfied (wrong filesystem?)"
@renmelt identical experience for me running on a DigitalOcean droplet (Docker 1.8.2 on 14.04). I ultimately got it running using the following steps.
First, I noticed that the image at https://hub.docker.com/r/progrium/envy/ was last pushed 3 months ago (this accounts for the documentation on GitHub specifying -v /mnt/envy:/envy
and -e HOST_ROOT=/mnt/envy
instead of the /mnt/data
and HOST_DATA
which the image on Docker Hub is expecting). So I built the Docker image from GitHub instead:
root@dev:~# docker build -t progrium/envy https://github.com/progrium/envy.git
Sending build context to Docker daemon 1.511 MB
Step 0 : FROM gliderlabs/alpine:3.2
3.2: Pulling from gliderlabs/alpine
2cc966a5578a: Already exists
Digest: sha256:10e5a41452c61b36a936384c6162588142d95299ea8b67fa7e52eef6f934bd88
Status: Downloaded newer image for gliderlabs/alpine:3.2
---> 2cc966a5578a
Step 1 : RUN apk --update add bash curl go git mercurial
---> Running in 69b42b99910c
fetch http://alpine.gliderlabs.com/alpine/v3.2/main/x86_64/APKINDEX.tar.gz
(1/23) Installing ncurses-terminfo-base (5.9-r3)
(2/23) Installing ncurses-libs (5.9-r3)
(3/23) Installing readline (6.3.008-r0)
(4/23) Installing bash (4.3.33-r0)
(5/23) Installing run-parts (4.4-r0)
(6/23) Installing openssl (1.0.2d-r0)
(7/23) Installing lua5.2-libs (5.2.4-r0)
(8/23) Installing lua5.2 (5.2.4-r0)
(9/23) Installing ncurses-widec-libs (5.9-r3)
(10/23) Installing lua5.2-posix (33.3.1-r2)
(11/23) Installing ca-certificates (20141019-r2)
(12/23) Installing libssh2 (1.5.0-r0)
(13/23) Installing curl (7.42.1-r0)
(14/23) Installing expat (2.1.0-r1)
(15/23) Installing pcre (8.37-r1)
(16/23) Installing git (2.4.1-r0)
(17/23) Installing go (1.4.2-r1)
(18/23) Installing libbz2 (1.0.6-r3)
(19/23) Installing libffi (3.2.1-r0)
(20/23) Installing gdbm (1.11-r0)
(21/23) Installing sqlite-libs (3.8.10.2-r0)
(22/23) Installing python (2.7.10-r1)
(23/23) Installing mercurial (3.4-r0)
Executing busybox-1.23.2-r0.trigger
Executing ca-certificates-20141019-r2.trigger
OK: 194 MiB in 38 packages
---> 43b5052aa6ad
Removing intermediate container 69b42b99910c
Step 2 : RUN curl -Ls https://github.com/progrium/execd/releases/download/v0.1.0/execd_0.1.0_Linux_x86_64.tgz | tar -zxC /bin && curl -Ls https://github.com/progrium/entrykit/releases/download/v0.2.0/entrykit_0.2.0_Linux_x86_64.tgz | tar -zxC /bin && curl -sL https://get.docker.com/builds/Linux/x86_64/docker-1.7.1 > /bin/docker && chmod +x /bin/docker && entrykit --symlink
---> Running in d51ea679ffea
Creating symlink /bin/codep ...
Creating symlink /bin/entrykit ...
Creating symlink /bin/waitgrp ...
Creating symlink /bin/switch ...
Creating symlink /bin/render ...
Creating symlink /bin/prehook ...
Creating symlink /bin/posthook ...
---> b7d5a12b7be4
Removing intermediate container d51ea679ffea
Step 3 : ADD ./data /tmp/data
---> cc1fabb69e30
Removing intermediate container d237c02e645f
Step 4 : ENV GOPATH /go
---> Running in a573cd6a1607
---> 0218b3e71d7f
Removing intermediate container a573cd6a1607
Step 5 : COPY . /go/src/github.com/progrium/envy
---> 175d3ebcd588
Removing intermediate container 2761ccf7922d
Step 6 : WORKDIR /go/src/github.com/progrium/envy
---> Running in 8b53960739c7
---> af5cd625c4ad
Removing intermediate container 8b53960739c7
Step 7 : RUN go get && CGO_ENABLED=0 go build -a -installsuffix cgo -o /bin/envy && ln -s /bin/envy /bin/enter && ln -s /bin/envy /bin/auth && ln -s /bin/envy /bin/serve
---> Running in b22c4eaf1ff2
---> 5614176c5d6c
Removing intermediate container b22c4eaf1ff2
Step 8 : VOLUME /envy
---> Running in 953ff461c8e1
---> 8fd9dc5fbe3a
Removing intermediate container 953ff461c8e1
Step 9 : EXPOSE 22 80
---> Running in 6223ba299406
---> 3defc5cfbe28
Removing intermediate container 6223ba299406
Step 10 : ENTRYPOINT codep /bin/execd -e -k /tmp/data/id_host /bin/auth /bin/enter /bin/serve
---> Running in 1e6127f1907b
---> 9091f3c02b38
Removing intermediate container 1e6127f1907b
Successfully built 9091f3c02b38
root@dev:~# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
progrium/envy latest 9091f3c02b38 7 seconds ago 258.7 MB
gliderlabs/alpine 3.2 2cc966a5578a 2 weeks ago 5.25 MB
root@dev:~#
This, however, gives a fatal error on docker run
:
root@dev:~# docker run -d --name envy \
> -v /mnt/envy:/envy \
> -v /var/run/docker.sock:/var/run/docker.sock \
> -p 80:80 \
> -p 22:22 \
> -e HOST_ROOT=/mnt/envy \
> progrium/envy
bd3481d0e14c1003376c9ae42f4f6923bcdc34467fdcc89eafb4bdcf38281775
root@dev:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@dev:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bd3481d0e14c progrium/envy "codep '/bin/execd -e" 7 seconds ago Exited (1) 6 seconds ago envy
root@dev:~# docker logs bd
2015/10/05 19:53:43 Starting log service ...
panic: open /envy/config/admins: no such file or directory
goroutine 1 [running]:
github.com/progrium/envy/cmd.assert(0x7f9246dbe180, 0xc20803b590)
/go/src/github.com/progrium/envy/cmd/util.go:42 +0x50
github.com/progrium/envy/cmd.writeFile(0xc20801eee0, 0x13, 0x0, 0x0)
/go/src/github.com/progrium/envy/cmd/util.go:83 +0xaf
github.com/progrium/envy/cmd.(*User).Admin(0xc20800ae50, 0x0)
/go/src/github.com/progrium/envy/cmd/user.go:13 +0x1de
github.com/progrium/envy/cmd.CheckAdminCmd()
/go/src/github.com/progrium/envy/cmd/admin.go:18 +0x64
main.main()
/go/src/github.com/progrium/envy/envy.go:16 +0x91
goroutine 5 [IO wait]:
net.(*pollDesc).Wait(0xc208076290, 0x72, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:84 +0x47
net.(*pollDesc).WaitRead(0xc208076290, 0x0, 0x0)
/usr/lib/go/src/net/fd_poll_runtime.go:89 +0x43
net.(*netFD).accept(0xc208076230, 0x0, 0x7f9246dbdcf0, 0xc20800ae08)
/usr/lib/go/src/net/fd_unix.go:419 +0x40b
net.(*UnixListener).AcceptUnix(0xc20801e860, 0xb74960, 0x0, 0x0)
/usr/lib/go/src/net/unixsock_posix.go:282 +0x56
net.(*UnixListener).Accept(0xc20801e860, 0x0, 0x0, 0x0, 0x0)
/usr/lib/go/src/net/unixsock_posix.go:293 +0x4c
github.com/progrium/envy/cmd.func·017()
/go/src/github.com/progrium/envy/cmd/cmd.go:54 +0x43
created by github.com/progrium/envy/cmd.SetupLogging
/go/src/github.com/progrium/envy/cmd/cmd.go:66 +0x2ad
!! exit status 2
root@dev:~#
It's trying to create a file at /envy/config/admins
, which is presumably a list of Envy admins. I worked around this issue by simply creating the config
directory:
root@dev:~# mkdir /mnt/envy/config/
root@dev:~# docker rm bd3481d0e14c
bd3481d0e14c
root@dev:~# docker run -d --name envy -v /mnt/envy:/envy -v /var/run/docker.sock:/var/run/docker.sock -p 80:80 -p 22:22 -e HOST_ROOT=/mnt/envy progrium/envy
7e11f6dcf6563929343e782e8a94c417f53855d03cb230b232ec2aaf96b2c71a
root@dev:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7e11f6dcf656 progrium/envy "codep '/bin/execd -e" 2 seconds ago Up 1 seconds 0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp envy
root@dev:~#
I was then able to enter a session successfully:
MBP13:~ smaccona$ ssh smaccona@45.55.243.219
Entering session...
root@smaccona:/#
Looking at the logs on the docker host:
root@dev:~# docker logs envy
2015/10/05 19:58:39 Starting log service ...
2015/10/05 19:58:39 Setting up Envy root ...
2015/10/05 19:58:39 Starting HTTP server on 80 ...
2015/10/05 19:58:39 Pulling progrium/dind:latest ...
2015/10/05 19:59:03 auth[ssh]: allowing smaccona
2015/10/05 19:59:03 smaccona | starting dind for environ smaccona
2015/10/05 19:59:03 smaccona | building environ smaccona
2015/10/05 19:59:18 smaccona | entering session smaccona.0
root@dev:~#
The user for my session did not have admin privileges, though:
root@smaccona:/# envy --help
Usage:
envy [flags]
envy [command]
Available Commands:
environ
session
Use "envy [command] --help" for more information about a command.
root@smaccona:/#
I fixed this by manually adding the username to /mnt/envy/config/admins
on the docker host. The change took effect immediately:
root@smaccona:/# envy --help
Usage:
envy [flags]
envy [command]
Available Commands:
environ
session
admin
Use "envy [command] --help" for more information about a command.
root@smaccona:/# envy admin ls
smaccona
root@smaccona:/#
Hope this is helpful.
@progrium I understand the first user to connect is supposed to get admin privileges - this is implemented in https://github.com/progrium/envy/blob/master/cmd/user.go#L13 but I'm not clear why this is getting called on the initial docker run
, as opposed to when a user first connects.
Tried envy under video instruction on a AWS ec2 instance with debian jessie installed.
Start envy container all good (host ssh moved to 2222)
docker run -d --privileged --name envy -v /mnt/data -v /var/run/docker.sock:/var/run/docker.sock -p 80:80 -p 22:22 -e HOST_DATA=/mnt/data progrium/envy
try to ssh with my github key got below error ssh -i ~/.ssh/github.pem yikaus@x.x.x.x
FATA[0000] Error response from daemon: Cannot start container a99166b44939e8508228a828a57e319e298ecb6cb6865f6821f94ea0d9bbe24c: [8] System error: not a directory
server end looks all right :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a097e0f61d36 jpetazzo/dind:latest "wrapdocker" 30 seconds ago Up 29 seconds yikaus.yikaus
30784eb3c15b progrium/envy:latest "codep '/bin/execd - 38 seconds ago Up 37 seconds 0.0.0.0:22->22/tcp, 0.0.0.0:80->80/tcp envy
Here is my docker setup :
docker info Containers: 2 Images: 24 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 28 Dirperm1 Supported: true Execution Driver: native-0.2 Kernel Version: 3.16.0-4-amd64 Operating System: Debian GNU/Linux 8 (jessie) CPUs: 1 Total Memory: 999 MiB Name: ip-172-31-11-63 ID: L43G:BZ6F:3BN2:ARVR:ESHU:NIKJ:FY3S:FWQ4:W5HY:QFXX:W3WU:O7OV WARNING: No memory limit support WARNING: No swap limit support
docker version Client version: 1.6.2 Client API version: 1.18 Go version (client): go1.3.3 Git commit (client): 7c8fca2 OS/Arch (client): linux/amd64 Server version: 1.6.2 Server API version: 1.18 Go version (server): go1.3.3 Git commit (server): 7c8fca2 OS/Arch (server): linux/amd64
Any idea on this issue ?
Thanks Kevin