我正在尝试为我的项目创建一个docker环境。让我解释。
我有一个名为my-project“引发战争”的项目my-project.war。我创建了一个名为的 Docker 映像my-project:latest,其中包含目录my-project.war中的/my-project。那很简单。
现在我想将 Docker 映像my-project:latest和tomcat:latest(这是 Tomcat 的官方 Docker 映像)合并到docker-compose.yml. 我从这个开始docker-compose.yml:
version: "3"
services:
my-project:
image: my-project:latest
tomcat:
image: tomcat:latest
ports:
- 8080:8080
Run Code Online (Sandbox Code Playgroud)
但是现在如何将文件/my-project/my-project.war从my-project容器复制到webapps/容器中的目录tomcat呢?这在 docker-compose 中可能吗?还是我应该从一个新的开始Dockerfile?
换句话说,我在组合这两个容器时遇到了麻烦。
你不能在 docker-compose 中这样做。但是,您可以使用 docker 中一个非常好的功能,称为MultiStage Build
基本上,创建一个新的 Dockerfile 将图像合并为一个:
FROM my-project:latest as project
FROM tomcat:latest
COPY --from=project /my-project/my-project.war /webapps
Run Code Online (Sandbox Code Playgroud)
一旦你使用构建这个镜像,docker build -t app .你将拥有一个 tomcat 镜像,其中包含你在“/webapps”的战争。
在 docker-compose 中只需使用这个图像:
version: "3"
services:
application:
image: app
ports:
- 8080:8080
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10691 次 |
| 最近记录: |