docker、maven、tomcat8自动部署配置方法

1、先要选取一个基板docker镜像,此处选用tomcat:8-jre8

2、通过基板镜像,build一个自有镜像:

Dockerfile:

FROM tomcat:8-jre8

MAINTAINER "Liu Li <[email protected]>" 

ADD settings.xml /usr/local/tomcat/conf/
ADD tomcat-users.xml /usr/local/tomcat/conf/

settings.xml:

<?xml version="1.0" encoding="UTF-8"?>
<settings>
<servers> 
<server>
<id>TomcatServer</id>
<username>admin</username>
<password>adm123</password>
</server> 
</servers>

tomcat-users.xml:

<?xml version=‘1.0‘ encoding=‘utf-8‘?>
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin" password="adm123" roles="manager,manager-gui,manager-script" />
</tomcat-users>

这三个文件放在同一个文件夹里,然后在那个文件夹里执行:

 docker build -t my_tomcat:8-jre8 .

3、通过设定的自有镜像启动一个容器:

 docker run -d -p 8080:8080  my_tomcat:8-jre8

访问ip:8080可以获得tomcat的欢迎页

ip/manager可以获得tomcat的管理页面:登录用户名密码在上面文件中配置

4、maven管理的工程中的pom文件中:

注:如果pom中带s的复数标签已有,只需要将内容添加到标签下即可:

比如:

文件中已经存在plugins标签,往其中添加:

 <plugins>  
            <plugin>
                <groupId>xxxxxxxxxxxxxxxxxx</groupId>  
                <artifactId>xxxxxxxxxxxxxxxxxx</artifactId>  
                <version>xxxxxxxxxxx</version>  
            </plugin>  
         .
         .
         .
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <version>3.1</version>  
            </plugin>  
            <plugin>  
                <groupId>org.apache.tomcat.maven</groupId>  
                <artifactId>tomcat7-maven-plugin</artifactId>  
                <version>2.2</version>  
                <configuration>
                    <port>8080</port>   
                    <uriEncoding>UTF-8</uriEncoding>
                    <url>http://localhost:8080/manager/text</url>  
                    <username>admin</username>  
                    <password>adm123</password>  
                    <path>/${project.artifactId}</path>  
                </configuration>  
            </plugin>  
</plugins>

文件中存在properties标签时:

<properties>  
        .
        .
        .
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <project.deploy>deploy</project.deploy>  
        <project.tomcat.version>8.0.0-RC5</project.tomcat.version>  
</properties>

文件中存在dependencies标签:

 <dependencies>
         <dependency>  
            <groupId>xxxxxxxxxx</groupId>  
            <artifactId>xxxxxxxxxxxx</artifactId>  
            <version>xxxxxxxxxxxxx</version>  
            <scope>xxxxxxxxxxxx</scope>  
        </dependency> 
        .
        .
        .
        <dependency>  
            <groupId>org.apache.tomcat</groupId>  
            <artifactId>tomcat-servlet-api</artifactId>  
            <version>${project.tomcat.version}</version>  
            <scope>provided</scope>  
        </dependency> 
  </dependencies>

pom.xml:

localhost改成你部署的主机的ip

<properties>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <project.deploy>deploy</project.deploy>  
        <project.tomcat.version>8.0.0-RC5</project.tomcat.version>  
</properties>  
 <dependencies>
        <dependency>  
            <groupId>org.apache.tomcat</groupId>  
            <artifactId>tomcat-servlet-api</artifactId>  
            <version>${project.tomcat.version}</version>  
            <scope>provided</scope>  
        </dependency> 
  </dependencies>  
  <build>  
        <plugins>  
            <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-compiler-plugin</artifactId>  
                <version>3.1</version>  
            </plugin>  
            <plugin>  
                <groupId>org.apache.tomcat.maven</groupId>  
                <artifactId>tomcat7-maven-plugin</artifactId>  
                <version>2.2</version>  
                <configuration>
                    <port>8080</port>   
                    <uriEncoding>UTF-8</uriEncoding>
                    <url>http://localhost:8080/manager/text</url>  
                    <username>admin</username>  
                    <password>adm123</password>  
                    <path>/${project.artifactId}</path>  
                </configuration>  
            </plugin>  
        </plugins>  
    </build>

5、完成之后,在项目工程文件夹中执行:

含义:构建并将工程部署到tomcat中,跳过单元测试。

mvn -Dmaven.test.skip=true tomcat7:deploy -e

结果如:

[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.drpeng:busimgnt:war:1.0-SNAPSHOT
[WARNING] ‘build.plugins.plugin.version‘ for org.apache.maven.plugins:maven-deploy-plugin is missing. @ com.drpeng:busimgnt:[unknown-version], /root/work/OVERSEABOSS/modelBusisrv/busimgnt/pom.xml, line 97, column 21
[WARNING] ‘build.plugins.plugin.version‘ for org.apache.maven.plugins:maven-install-plugin is missing. @ com.drpeng:busimgnt:[unknown-version], /root/work/OVERSEABOSS/modelBusisrv/busimgnt/pom.xml, line 77, column 21
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building busimgnt Maven Webapp 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> tomcat7-maven-plugin:2.2:deploy (default-cli) > package @ busimgnt >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ busimgnt ---
[INFO] Using ‘UTF-8‘ encoding to copy filtered resources.
[INFO] Copying 44 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ busimgnt ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 186 source files to /root/work/OVERSEABOSS/modelBusisrv/busimgnt/target/classes
[WARNING] /root/work/OVERSEABOSS/modelBusisrv/busimgnt/src/main/java/com/drpeng/busimgnt/api/SaleDomyBoxFileInfoResource.java:[9,42] warning: com.sun.org.apache.regexp.internal.RE is Sun proprietary API and may be removed in a future release
[WARNING] Note: Some input files use unchecked or unsafe operations.
[WARNING] Note: Recompile with -Xlint:unchecked for details.
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ busimgnt ---
[INFO] Not copying test resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ busimgnt ---
[INFO] Not compiling test sources
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ busimgnt ---
[INFO] Tests are skipped.
[INFO] 
[INFO] --- maven-war-plugin:2.2:war (default-war) @ busimgnt ---
[INFO] Packaging webapp
[INFO] Assembling webapp [busimgnt] in [/root/work/OVERSEABOSS/modelBusisrv/busimgnt/target/busimgnt]
[INFO] Processing war project
[INFO] Copying webapp resources [/root/work/OVERSEABOSS/modelBusisrv/busimgnt/src/main/webapp]
[INFO] Webapp assembled in [324 msecs]
[INFO] Building war: /root/work/OVERSEABOSS/modelBusisrv/busimgnt/target/busimgnt.war
[INFO] WEB-INF/web.xml already added, skipping
[INFO] 
[INFO] --- maven-jar-plugin:2.3:jar (make-a-jar) @ busimgnt ---
[INFO] Building jar: /root/work/OVERSEABOSS/modelBusisrv/busimgnt/target/busimgnt-1.0-SNAPSHOT.jar
[INFO] 
[INFO] <<< tomcat7-maven-plugin:2.2:deploy (default-cli) < package @ busimgnt <<<
[INFO] 
[INFO] --- tomcat7-maven-plugin:2.2:deploy (default-cli) @ busimgnt ---
[INFO] Deploying war to http://localhost:8080/busimgnt  
Uploading: http://localhost:8080/manager/text/deploy?path=%2Fbusimgnt
Uploaded: http://localhost:8080/manager/text/deploy?path=%2Fbusimgnt (18430 KB at 61229.1 KB/sec)
[INFO] tomcatManager status code:200, ReasonPhrase:OK
[INFO] OK - Deployed application at context path /busimgnt
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.720 s
[INFO] Finished at: 2016-11-16T10:10:31+08:00
[INFO] Final Memory: 30M/430M
[INFO] ------------------------------------------------------------------------

我的工程名字叫busimgnt,此时访问:

我的ip:8080/busimgnt,我的index中只写了hello world,因此访问后得到了该字符串,这时候,热部署就完成了,下次打包之后,执行本命令,就可以将新包热部署。

时间: 2024-08-25 14:18:35

docker、maven、tomcat8自动部署配置方法的相关文章

maven package自动部署包

我们部署项目时经常会遇到打包部署工作(非web工程),那该如何配置pom.xml?请看如下配置 1.工程目录 2.pom配置 2.1  注意只需要配置pom中build节点就可以了. <build> <!-- 打包工程名称 --> <finalName>mafka-test</finalName> <!-- 拷贝所有依赖jar到部署工程目录下 --> <plugins> <plugin> <groupId>or

Maven Tomcat7自动部署

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了Maven中使用Tomcat7进行自动部署,其中maven多模块web项目看这里看我的另一博文http://blog.csdn.net/evankaka/article/details/46730401 1.配置tomcat-users.xml文件 在tomcat安装目录下找到tomcat-users.xml文件.该文件路径为[tomcat安装根目录]/conf/ 修改文件

Jenkins构建本地项目到服务器上自动部署的方法

最近在用Jenkins做项目的自动部署,由于项目需求,现在要在本地构建后再放到Tomcat里.以下是本地构建步骤: 名称填写好,下面的选项是可选的. 源码管理这里选择none. 触发器这里,我的是在凌晨3点强制构建.可选. 这里是最重要的一步:选择Execute shell选项.可以使Jenkins执行一些shell命令. 点击之后会出现这个界面,在Command输入框里输入要执行的shell命令. 我指向的是/home/data/crm这个目录下,然后让其执行mvn打包指令. 在Build里输

使用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&g

Jenkins Docker安装及Docker build step插件部署配置

Docker-build-step插件安装部署1.打开系统管理,插件管理,找到Docker build step插件,勾选选中,点击直接安装,安装完成后重启一下Jenkins容器:2.使用终端登录到B服务器,修改/usr/lib/systemd/system/docker.service 为: 将其中第11行的 ExecStart=/usr/bin/dockerd 替换为:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///va

maven 添加memcached.jar配置方法

针对Java项目添加 memcahced 在mvnrepository 找了半天也没找到memcached.jar的配置xml, 由于目前Javamemcached client没有官方的maven repository可供使用,因此使用时需要手动将其安装到本地repository.java memcached client的jar包下载地址:https://github.com/gwhalin/Memcached-Java-Client/downloads 目前2.6.6版本的java mem

Docker Mongo数据库主从同步配置方法

一.具体操作方法 1.启两个Mongo容器 docker run --name mongo1 -p 21117:27017 -d mongo --noprealloc --smallfiles --replSet rs1 docker run --name mongo2 -p 22117:27017 -d mongo --noprealloc --smallfiles --replSet rs1 2.查看正在运行的容器 docker ps | grep mongo 3.查看mongo1.mong

(转)maven自动部署web项目到tomcat8(向下兼容7)

maven自动部署web项目到tomcat8(向下兼容7) 2014-08-29 10:52 网站上线以后,为了保证网站运行的连续性,有新功能更新时,不能重启Tomcat服务器去部署新增功能.因此,就研 究一下用maven的自动部署功能. 1首先要保证自己电脑上装了Tomcat服务器 进入Tomcat安装目录,打开..\conf\tomcat-users.xml,在这个配置文件中加入以下内容: <role rolename="manager-gui"/> <role

maven自动部署web项目到tomcat8(向下兼容7)

网站上线以后,为了保证网站运行的连续性,有新功能更新时,不能重启Tomcat服务器去部署新增功能.因此,就研 究一下用maven的自动部署功能. 1首先要保证自己电脑上装了Tomcat服务器 进入Tomcat安装目录,打开..\conf\tomcat-users.xml,在这个配置文件中加入以下内容: <role rolename="manager-gui"/> <role rolename="manager-script"/> <us