使用maven插件自动部署web应用至Docker容器的tomcat

Posted 林加欣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用maven插件自动部署web应用至Docker容器的tomcat相关的知识,希望对你有一定的参考价值。

配置maven

在pom.xml加入

1
2
3
4
5
6
7
8
9
10
11
12
13
<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <url>https://192.168.1.106:8081/manager/text</url>
            <server>tomcat</server>
            <username>deploy</username>
            <password>deploy</password>
        </configuration>
    </plugin>
</plugins>

在maven的settings.xml加入

1
2
3
4
5
<server>
      <id>tomcat</id>
      <username>deploy</username>
      <password>deploy</password>
  </server>

创建个人的Docker镜像

创建Dockerfile文件

1
2
3
mkdir -p /usr/local/dockerfile/massive
cd /usr/local/dockerfile/massive
touch Dockerfile

编辑Dockerfile

1
2
3
from tomcat:7
MAINTAINER massive
ADD tomcat-users.xml /usr/local/tomcat/conf/

注:tomcat-users.xml可以在tomcat/conf目录找到,拷贝一个到此目录

在tomcat-users.xml加入以下内容

1
2
3
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="deploy" password="deploy" roles="manager-gui, manager-script"/>

build这个镜像

1
docker build -t massive:tomcat .

运行个人定制的Docker镜像

1
docker run -p 8081:8080  massive:tomcat

将web应用部署至容器里运行的tomcat

1
mvn tomcat7:deploy

web应用会通过tomcat的部署机制拷贝至容器的 /usr/local/tomcat/webapps/${project} 下,当Docker容器关闭后,容器内的改动不会保存至镜像,也就是说拷贝至容器的web应用会在容器关闭后被删除。

配置maven

在pom.xml加入

1
2
3
4
5
6
7
8
9
10
11
12
13
<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <url>https://192.168.1.106:8081/manager/text</url>
            <server>tomcat</server>
            <username>deploy</username>
            <password>deploy</password>
        </configuration>
    </plugin>
</plugins>

在maven的settings.xml加入

1
2
3
4
5
<server>
      <id>tomcat</id>
      <username>deploy</username>
      <password>deploy</password>
  </server>

创建个人的Docker镜像

创建Dockerfile文件

1
2
3
mkdir -p /usr/local/dockerfile/massive
cd /usr/local/dockerfile/massive
touch Dockerfile

编辑Dockerfile

1
2
3
from tomcat:7
MAINTAINER massive
ADD tomcat-users.xml /usr/local/tomcat/conf/

注:tomcat-users.xml可以在tomcat/conf目录找到,拷贝一个到此目录

在tomcat-users.xml加入以下内容

1
2
3
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="deploy" password="deploy" roles="manager-gui, manager-script"/>

build这个镜像

1
docker build -t massive:tomcat .

运行个人定制的Docker镜像

1
docker run -p 8081:8080  massive:tomcat

将web应用部署至容器里运行的tomcat

1
mvn tomcat7:deploy

web应用会通过tomcat的部署机制拷贝至容器的 /usr/local/tomcat/webapps/${project} 下,当Docker容器关闭后,容器内的改动不会保存至镜像,也就是说拷贝至容器的web应用会在容器关闭后被删除。

以上是关于使用maven插件自动部署web应用至Docker容器的tomcat的主要内容,如果未能解决你的问题,请参考以下文章

Maven一键部署Springboot到Docker仓库,为自动化做准备

实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署

实战docker,编写Dockerfile定制tomcat8镜像,实现web应用在线部署

docker部署SpringCloud项目

docker部署springboot

Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器