设为首页 收藏本站
查看: 1901|回复: 1

[经验分享] docker、maven、tomcat8自动部署配置方法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-17 09:15:02 | 显示全部楼层 |阅读模式


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

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


Dockerfile:

FROM tomcat:8-jre8

MAINTAINER "Liu Li <lich@lichdiamond.win>"

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,因此访问后得到了该字符串,这时候,热部署就完成了,下次打包之后,执行本命令,就可以将新包热部署。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-301509-1-1.html 上篇帖子: 安装docker 下篇帖子: 在CentOS 6上搭建私有的Docker Registry v2
累计签到:70 天
连续签到:1 天
发表于 2016-11-18 08:52:41 | 显示全部楼层
感谢分享啊

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表