Ich versuche, ein Dockerized Play app auf OS X über docker-compose 1.1.0/boot2docker 1.5.0 zu betreiben. Allerdings spielt es nicht wirklich, gut, (verzeihen Sie das Wortspiel) ...Wie kann ich Docker-Compose unter OS X mit einer Play App arbeiten lassen?
Das Problem ist, dass die Anwendung mit einem Pseudo-TTY (von Docker bereitgestellt) ausgeführt werden muss, und das macht boot2docker beim Anhängen hängen .
ich die app laufen, durch docker-compose up
, und es hängt wie unten gezeigt:
> docker-compose up
Recreating exampleapp_web_1...
Attaching to exampleapp_web_1
Allerdings, wenn ich die App direkt, ohne Docker-compose laufen, funktioniert es:
> docker rm exampleapp_web_1 ; docker run -p 9000:9000 -ti --name exampleapp_web_1 -v `pwd`:/code -v `pwd`/.docker_home:/root exampleapp_web
[info] Loading project definition from /code/project
[info] Set current project to example-app (in build file:/code/)
--- (Running the application, auto-reloading is enabled) ---
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
(Server started, use Ctrl+D to stop and go back to the console...)
Wie kann ich docker-compose in meinem Szenario arbeiten?
Andockfensters-compose.yml
web:
build: .
command: run
ports:
- "9000:9000"
volumes:
- .:/code
- .docker_home:/root
stdin_open: true
tty: true
Dockerfile
FROM aknudsen/play-with-node
MAINTAINER Arve Knudsen <[email protected]>
COPY ./ /code
WORKDIR /code
EXPOSE 9000
ENTRYPOINT ["sbt"]
CMD ["run"]
Ausführliche Ausgabe von docker-compose up
> docker-compose --verbose up
Compose version 1.1.0
Docker base_url: https://192.168.59.103:2376
Docker version: KernelVersion=3.18.5-tinycore64, Arch=amd64, ApiVersion=1.17, Version=1.5.0, GitCommit=a8a31ef, Os=linux, GoVersion=go1.4.1
docker containers <- (all=True)
docker containers -> (list with 3 items)
Creating exampleapp_web_1...
docker containers <- (all=True)
docker containers -> (list with 3 items)
docker images <- (name=u'exampleapp_web')
docker images -> (list with 1 items)
docker create_container <- (tty=True, name=u'exampleapp_web_1', image=u'exampleapp_web', stdin_open=True, environment={}, command='run', volumes={u'/code': {}, u'/root': {}}, detach=False, ports=[u'9000'])
docker create_container -> {u'Id': u'dc0ebc7e34ea8793023a968725ab696e1a3d60341105e84e81ace776952f55d8',
u'Warnings': None}
docker inspect_container <- (u'dc0ebc7e34ea8793023a968725ab696e1a3d60341105e84e81ace776952f55d8')
docker inspect_container -> {u'AppArmorProfile': u'',
u'Args': [u'run'],
u'Config': {u'AttachStderr': True,
u'AttachStdin': True,
u'AttachStdout': True,
u'Cmd': [u'run'],
u'CpuShares': 0,
u'Cpuset': u'',
u'Domainname': u'',
u'Entrypoint': [u'sbt'],
...
docker start <- (u'dc0ebc7e34ea8793023a968725ab696e1a3d60341105e84e81ace776952f55d8', links=[], cap_add=None, restart_policy=None, dns_search=None, network_mode=u'bridge', binds={u'/Users/arve/Projects/example-app/.docker_home': {u'bind': u'/root', u'ro': False}, u'/Users/arve/Projects/example-app': {u'bind': u'/code', u'ro': False}}, dns=None, volumes_from=[], port_bindings={u'9000': [u'9000']}, cap_drop=None, privileged=False)
docker start -> None
docker containers <- (all=False)
docker containers -> (list with 2 items)
Attaching to exampleapp_web_1
docker attach <- (u'dc0ebc7e34ea8793023a968725ab696e1a3d60341105e84e81ace776952f55d8', stderr=1, logs=1, stream=1, stdout=1)
docker attach -> <generator object _multiplexed_response_stream_helper at 0x1062db2d0>
Log von Docker Behälter
> docker logs exampleapp_web_1
[info] Loading project definition from /code/project
[info] Set current project to example-app (in build file:/code/)
--- (Running the application, auto-reloading is enabled) ---
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
(Server started, use Ctrl+D to stop and go back to the console...)
GitHub Ausgabe
Es gibt eine GitHub issue, die beschreibt, genau dieses Problem zu sein scheint.
können Sie im ausführlichen Modus komponieren laufen. können Sie auch Ihren Docker Log aufnehmen? – booyaa
@booyaa Enthalten beide jetzt, danke. – aknuds1
ungerade sehen überhaupt keine Fehler, müssen einige Tests zu tun, vermutlich ein erfolgreicher Test ist, wenn Sie die Website auf http: // b2d-ip: 9000/mit '' 'docker-compose''' erreichen können? – booyaa