Docker-compose:合并/合并两个容器
我正在尝试为我的项目创build一个docker环境。 让我解释。
我有一个叫做my-project
,它产生了一个my-project.war
的战争。 我创build了一个名为my-project:latest
Docker的Docker镜像,它包含/my-project
目录中的my-project.war
。 那很简单。
现在我想在Docker docker-compose.yml
中将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
但是,我现在怎么能把文件/my-project/my-project.war
从my-project
容器复制到tomcat
容器中的webapps/
目录? 这是可能的docker组成,或者我应该从一个新的Dockerfile
开始?
换句话说,我有这两个容器结合的麻烦。
在docker-compose中你不能这么做。 然而,您可以在名为MultiStage Build的 Docker中使用非常好的function
基本上,创build一个新的Dockerfile将图像合并为一个:
FROM my-project:latest as project FROM tomcat:latest COPY --from=project /my-project/my-project.war /webapps
一旦你使用docker build -t app .
来构build这个图像docker build -t app .
你将会拥有一个tomcat镜像,它包含了你在`/ webapps'上的战争。
在docker-compose中使用这个图像:
version: "3" services: application: image: app ports: - 8080:8080