When I start a Docker container with docker-compose up
, it starts up as usual, but eventually the container automatically exits without anything that I can tell is useful in the verbose log.
When I instead run docker-compose up --entrypoint run-tests.sh
with the same docker-compose.yml
configuration (with the same entrypoint set) and the same Dockerfile, the Docker container says "Gracefully stopping" on its own and stops all containers.
The bad behaviour seems to come from running docker-compose up
instead of the equivalent docker-compose run
.
The container seems to stay up for varying times before it shuts down. In one instance it stayed up for 7 minutes, different times in others.
Does anyone know how to troubleshoot this?
Docker versions:
Docker version 1.9.0, build 76d6bc9
docker-compose version: 1.5.0
docker-machine version 0.5.0 (HEAD)
The docker-compose --verbose up
log:
docker-compose --verbose --project-name monkeycore up monkeycore-autotest
... lots of startup log (let me know if you need to see this) ...
# Scala Play1 Framework tests, not likely relevant
monkeycore-autotest_1 | ~ MonkeyTest... PASSED 30s
monkeycore-autotest_1 | ~ WhateverDataTest... PASSED 33s
monkeycore-autotest_1 | ~ SauceTest... PASSED 1 min 44s
Gracefully stopping... (press Ctrl+C again to force)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={u'label': [u'com.docker.compose.project=monkeycore', u'com.docker.compose.oneoff=False']})
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 2 items)
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'617bf28c3f7ae3779f383f7e2a96f66e552e92f755a15d07ac6b73329ba3860f')
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'',
u'Args': [u'-c', u'build.sh && play auto-test'],
u'Config': {u'AttachStderr': False,
u'AttachStdin': False,
u'AttachStdout': False,
u'Cmd': None,
u'CpuShares': 0,
u'Cpuset': u'',
u'Domainname': u'',
u'Entrypoint': [u'bash', u'-c', u'build.sh && play auto-test'],
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- (u'4963e9287ed10d587a79f57a52eaf86c07c6947b2119072bd5d68a3ed0eb161e')
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {u'AppArmorProfile': u'',
u'Args': [u'/usr/local/etc/redis/redis.conf'],
u'Config': {u'AttachStderr': False,
u'AttachStdin': False,
u'AttachStdout': False,
u'Cmd': None,
u'CpuShares': 0,
u'Cpuset': u'',
u'Domainname': u'',
u'Entrypoint': [u'redis-server',
...
Stopping monkeycore_monkeycore-autotest_1 ...
compose.cli.verbose_proxy.proxy_callable: docker stop <- (u'617bf28c3f7ae3779f383f7e2a96f66e552e92f755a15d07ac6b73329ba3860f', timeout=10)
Stopping monkeycore_monkeycore-autotest_1 ... done
ERROR: compose.cli.main.main: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
docker-compose.yml
:
monkeycore-base:
build: ../
dockerfile: "docker/monkeycore/Dockerfile"
ports:
- "8000:8000"
- "8082:8082"
- "9000:9000"
stdin_open: true
tty: true
working_dir: "/path/to/dir"
volumes:
- src:dest
environment:
LOTS_OF_ENVIRONMENT_VARIABLES: "defined"
monkeycore-autotest:
extends:
service: monkeycore-base
links:
- redis
entrypoint: "run-tests.sh"
redis:
build: ./redis
ports:
- "6379:6379"
I was having the same problem. There's an open issue for that at Compose's repository.
In the issue someone suggested, as a workaround, to run docker-compose up -d
. That way containers will keep running even if there's a connection failure.
To see the container logs just run docker-compose logs
.
That suggestion solved the problem for now without having to worry to downgrade Compose.
For some reason your docker client lost comunication with you docker engine. Probably some issue on monkeycore_monkeycore-autotest_1 container caused it.
Check if your docker machine is still running:
$ docker machine ls
and if your envs variables are set, the 'docker' ones:
env | grep -i "docker"
Try to restart your docker-machine, reset your env vars
eval "$(docker-machine env default)" ### or your machine name.
and try to run the tests manually inside the container (docker exec -ti container-name /bin/bash
) to see what is going wrong there.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With