2015-04-15 5 views
7

Sto cercando di eseguire un Dockerized Play app su OS X tramite docker-compose 1.1.0/boot2docker 1.5.0. Tuttavia, in realtà non funziona (scusate il gioco di parole) ...Come faccio a rendere mobile il docker su OS X con un'app Play?

Il problema è che l'app deve essere eseguita con uno pseudo TTY (fornito da Docker), e questo fa sì che hang2docker si blocchi durante il tentativo di collegamento .

ho eseguire l'applicazione, attraverso docker-compose up, e si blocca come illustrato di seguito:

> docker-compose up 
Recreating exampleapp_web_1... 
Attaching to exampleapp_web_1 

Tuttavia, se corro direttamente l'applicazione, senza finestra mobile-composizione, funziona:

> 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...) 

Come faccio a rendere il lavoro di docker-compose nel mio scenario?

finestra mobile-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"] 

Output dettagliato da 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 di contenitore Docker

> 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 Problema

C'è un GitHub issue che sembra descrivere questo problema.

+0

è possibile eseguire comporre in modalità dettagliata. puoi anche includere il tuo registro docker? – booyaa

+0

@booyaa Inclusi entrambi adesso, grazie. – aknuds1

+0

odd vedere nessun errore, dovrà fare qualche test, presumibilmente un test di successo è se è possibile raggiungere il sito su http: // b2d-ip: 9000/usando '' 'docker-compose'''? – booyaa

risposta

1

vedono questo url https://www.playframework.com/documentation/2.4.x/ProductionConfiguration

passi per eseguire l'applicazione nella produzione

1) nella cartella di progetto, $ correre sbt dist 2) eseguire questo comando dal progetto di primo livello ./target/universal/your-app -name -javaArguments ...

nella finestra mobile-comporre

web: 
build: . 
command: sbt dist && ./target/universal/app-name -JavaArguments 
ports: 
    - "9000:9000" 
volumes: 
    - .:/code 
    - .docker_home:/root 
stdin_open: true 
tty: true 
Problemi correlati