Play Framework 中指定的基本 docker 图片在哪里?
Where is the base docker image specified in Play Framework?
我的应用程序是使用 Scala 在 Play Framework (2.5.3) 上构建的。为了部署应用程序,我使用 sbt docker:publishLocal
命令创建了一个 docker 图像。我试图找出基础 docker 图像文件在播放框架文件夹结构中的位置。我确实在 target/docker 文件夹中看到了一个 DockerFile。我不知道 Play Framework 如何创建此 DockerFile 以及 Play Framework 在哪里/如何告诉 docker 将应用程序分层到基础映像上。我是 scala/play/docker n00b。请帮忙。
此处的文档:http://www.scala-sbt.org/sbt-native-packager/formats/docker.html indicates that the base image is dockerfile/java which doesn't seem to be in docker hub but details for the image are on github: https://github.com/dockerfile/java
文档还指出您可以使用 "dockerBaseImage" 环境设置或创建自定义 dockerfile http://www.scala-sbt.org/sbt-native-packager/formats/docker.html#custom-dockerfile
来指定自己的基础映像
还说明了使用自己的基础镜像时的要求:
The image to use as a base for running the application. It should include binaries on the path for chown, mkdir, have a discoverable java binary, and include the user configured by daemonUser (daemon, by default).
这里有一些定义,以便了解我在说什么。
- Docker 容器 是已配置和存储的存储应用程序或服务,因此 docker 可以 运行 在任何机器上 docker 安装在.
- Docker 图片 是 docker 容器实例的保存状态,用于 运行 新容器。
- Docker文件 是包含有关如何构建 docker 映像的构建说明的文件。这是为了卸载一些必须附加的许多附加参数,以便 运行 一个容器按照他们想要的方式。
@michaJlS I am looking for details on the base docker image that play framework uses. Regarding your question on why I need it - 1. I like to know where it is 2. I'd like to know how I can add another layer to it if need be.
1.) 这将基于您要查找的内容。如果您正在寻找 docker 的即用型图像,只需执行 docker images
并找到暗示您正在使用的图像。如果您要查找 原始 数据,可以在 /var/lib/docker/graph
中找到。然而,这是毫无意义的,因为您需要只能由我上面给出的 docker images 命令指定的图像 ID。如果图像构建不正确,图像将不会出现。
2.) 如果您希望修改或附加一个附加层(通过添加层,您的意思是向您的应用程序添加新文件和模块),您需要 运行 docker 图片(via the docker run command)。如果 docker 图像不能被 docker 守护进程定位,这同样没有实际意义。
虽然这应该可以回答您的问题,但我认为这不是您要问的。 关注 docker 的人是希望将应用程序放入容器中的人,这些容器可以 运行 在任何平台上避免依赖性问题,同时保持相对便利性 。如果您尝试使用 docker 来放置您新创建的应用程序,您将需要 build from a dockerfile。
简而言之,docker文件是您通常必须在 运行安装容器之前或在其中时指定的构建指令。如果您声明 sbt docker
命令创建了一个 docker 文件,您将需要查找该文件并使用 docker build
命令来创建图像实例(信息应该在那一秒提供 link)。为了尝试让您的应用程序在容器上运行 运行,您最好的做法是在具有 运行ning 应用程序环境的容器中构建它,或者简单地从 运行 构建它=55=]文件.
第一个选项是 docker run -ti imagename
,图像是安装了 运行ning 应用程序的机器环境。您可以在 docker hub and one that may be of interest to you is this play-framework image someone else created 上找到一些图片。该命令将使您进入与容器的交互式会话,这样您就可以像尝试在自己的环境中创建应用程序一样工作。只是不要忘记在完成构建后使用 docker commit
!
构建图像的更快方法是从 docker 文件中构建图像。如果您知道所有命令并且拥有创建所需的所有依赖项,并且 运行 您的应用程序只需将它们放入名为 "Dockerfile" 的文件中(遵循 link 2 的说明和指导)和做 docker build -t NewImageName /path/to/Dockerfile
。这将创建一个图像,您可以使用它来创建该图像的容器或按您认为合适的方式分发它。
没有指定的Docker文件,它是由具有预定义默认值的插件生成的,您可以覆盖
http://www.scala-sbt.org/sbt-native-packager/formats/docker.html
您可以查看 docker.DockerPlugin,以更好地了解所使用的默认值。
您还可以查看 Docker其他任务的键,例如
docker-生成配置
我的应用程序是使用 Scala 在 Play Framework (2.5.3) 上构建的。为了部署应用程序,我使用 sbt docker:publishLocal
命令创建了一个 docker 图像。我试图找出基础 docker 图像文件在播放框架文件夹结构中的位置。我确实在 target/docker 文件夹中看到了一个 DockerFile。我不知道 Play Framework 如何创建此 DockerFile 以及 Play Framework 在哪里/如何告诉 docker 将应用程序分层到基础映像上。我是 scala/play/docker n00b。请帮忙。
此处的文档:http://www.scala-sbt.org/sbt-native-packager/formats/docker.html indicates that the base image is dockerfile/java which doesn't seem to be in docker hub but details for the image are on github: https://github.com/dockerfile/java
文档还指出您可以使用 "dockerBaseImage" 环境设置或创建自定义 dockerfile http://www.scala-sbt.org/sbt-native-packager/formats/docker.html#custom-dockerfile
来指定自己的基础映像还说明了使用自己的基础镜像时的要求:
The image to use as a base for running the application. It should include binaries on the path for chown, mkdir, have a discoverable java binary, and include the user configured by daemonUser (daemon, by default).
这里有一些定义,以便了解我在说什么。
- Docker 容器 是已配置和存储的存储应用程序或服务,因此 docker 可以 运行 在任何机器上 docker 安装在.
- Docker 图片 是 docker 容器实例的保存状态,用于 运行 新容器。
- Docker文件 是包含有关如何构建 docker 映像的构建说明的文件。这是为了卸载一些必须附加的许多附加参数,以便 运行 一个容器按照他们想要的方式。
@michaJlS I am looking for details on the base docker image that play framework uses. Regarding your question on why I need it - 1. I like to know where it is 2. I'd like to know how I can add another layer to it if need be.
1.) 这将基于您要查找的内容。如果您正在寻找 docker 的即用型图像,只需执行 docker images
并找到暗示您正在使用的图像。如果您要查找 原始 数据,可以在 /var/lib/docker/graph
中找到。然而,这是毫无意义的,因为您需要只能由我上面给出的 docker images 命令指定的图像 ID。如果图像构建不正确,图像将不会出现。
2.) 如果您希望修改或附加一个附加层(通过添加层,您的意思是向您的应用程序添加新文件和模块),您需要 运行 docker 图片(via the docker run command)。如果 docker 图像不能被 docker 守护进程定位,这同样没有实际意义。
虽然这应该可以回答您的问题,但我认为这不是您要问的。 关注 docker 的人是希望将应用程序放入容器中的人,这些容器可以 运行 在任何平台上避免依赖性问题,同时保持相对便利性 。如果您尝试使用 docker 来放置您新创建的应用程序,您将需要 build from a dockerfile。
简而言之,docker文件是您通常必须在 运行安装容器之前或在其中时指定的构建指令。如果您声明 sbt docker
命令创建了一个 docker 文件,您将需要查找该文件并使用 docker build
命令来创建图像实例(信息应该在那一秒提供 link)。为了尝试让您的应用程序在容器上运行 运行,您最好的做法是在具有 运行ning 应用程序环境的容器中构建它,或者简单地从 运行 构建它=55=]文件.
第一个选项是 docker run -ti imagename
,图像是安装了 运行ning 应用程序的机器环境。您可以在 docker hub and one that may be of interest to you is this play-framework image someone else created 上找到一些图片。该命令将使您进入与容器的交互式会话,这样您就可以像尝试在自己的环境中创建应用程序一样工作。只是不要忘记在完成构建后使用 docker commit
!
构建图像的更快方法是从 docker 文件中构建图像。如果您知道所有命令并且拥有创建所需的所有依赖项,并且 运行 您的应用程序只需将它们放入名为 "Dockerfile" 的文件中(遵循 link 2 的说明和指导)和做 docker build -t NewImageName /path/to/Dockerfile
。这将创建一个图像,您可以使用它来创建该图像的容器或按您认为合适的方式分发它。
没有指定的Docker文件,它是由具有预定义默认值的插件生成的,您可以覆盖
http://www.scala-sbt.org/sbt-native-packager/formats/docker.html
您可以查看 docker.DockerPlugin,以更好地了解所使用的默认值。
您还可以查看 Docker其他任务的键,例如
docker-生成配置