Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何让docker compose在OS X上与Play应用程序一起工作?_Macos_Playframework_Sbt_Docker_Boot2docker - Fatal编程技术网

Macos 如何让docker compose在OS X上与Play应用程序一起工作?

Macos 如何让docker compose在OS X上与Play应用程序一起工作?,macos,playframework,sbt,docker,boot2docker,Macos,Playframework,Sbt,Docker,Boot2docker,我正试图通过1.1.0/1.5.0在OSX上运行一个停靠的。然而,它并不是真的,好的,播放(请原谅双关语) 问题是应用程序必须使用伪TTY(由Docker提供)运行,这使得boot2docker在尝试连接时挂起 我通过docker compose up运行应用程序,它挂起,如下所示: > docker-compose up Recreating exampleapp_web_1... Attaching to exampleapp_web_1 但是,如果我不使用docker compos

我正试图通过1.1.0/1.5.0在OSX上运行一个停靠的。然而,它并不是真的,好的,播放(请原谅双关语)

问题是应用程序必须使用伪TTY(由Docker提供)运行,这使得boot2docker在尝试连接时挂起

我通过
docker compose up
运行应用程序,它挂起,如下所示:

> docker-compose up
Recreating exampleapp_web_1...
Attaching to exampleapp_web_1
但是,如果我不使用docker compose直接运行应用程序,它可以工作:

> 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...)
如何使docker compose在我的场景中工作

docker-compose.yml Dockerfile Docker容器日志 GitHub问题 有一个url似乎描述了这个问题。

查看此url

在生产环境中运行应用程序的步骤

1) 在项目文件夹中,运行$sbt dist 2) 从项目根目录执行此命令。/target/universal/your app name-javaArguments

在docker compose中

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

您可以在详细模式下运行compose。你还可以包括你的docker日志吗?@booyaa现在两个都包括了,谢谢。奇怪的是,如果你没有看到任何错误,就必须做一些测试,如果你能使用
docker compose
,访问该站点,可能是一个成功的测试?@booyaa发生这种情况并不奇怪,我猜挂起的原因是从Docker捕获流,并反过来捕获其来宾应用程序。我在GitHub上发现了一个类似的问题:。
FROM aknudsen/play-with-node
MAINTAINER Arve Knudsen <arve.knudsen@gmail.com>

COPY ./ /code
WORKDIR /code

EXPOSE 9000

ENTRYPOINT ["sbt"]
CMD ["run"]
> 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>
> 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...)
web:
build: .
command: sbt dist && ./target/universal/app-name -JavaArguments
ports:
  - "9000:9000"
volumes:
  - .:/code
  - .docker_home:/root
stdin_open: true
tty: true