1. 程式人生 > >Docker實踐-使用maven外掛自動部署web應用至Docker容器的tomcat

Docker實踐-使用maven外掛自動部署web應用至Docker容器的tomcat

本文就是將 maven-tomcat-pluginsDocker 結合起來,將web應用部署至Docker容器中正在執行的tomcat。

配置maven

在pom.xml加入

    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version
>
<configuration> <url>http://192.168.1.106:8081/manager/text</url> <server>tomcat</server> <username>deploy</username> <password>deploy</password> </configuration
>
</plugin> </plugins>

在maven的settings.xml加入

 <server>
      <id>tomcat</id>
      <username>deploy</username>
      <password>deploy</password>
  </server>

maven的settings.xml在$MAVEN_HOME/conf目錄

下載docker的tomcat映象

1、搜尋Docker Hub裡的tomcat映象

docker search tomcat
  • 部分搜尋結果如下
NAME                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tomcat                      Apache Tomcat is an open source implementa...   1132      [OK]
dordoka/tomcat              Ubuntu 14.04, Oracle JDK 8 and Tomcat 8 ba...   29                   [OK]
cloudesire/tomcat           Tomcat server, 6/7/8                            12                   [OK]
davidcaste/alpine-tomcat    Apache Tomcat 7/8 using Oracle Java 7/8 wi...   11                   [OK]
andreptb/tomcat             Debian Jessie based image with Apache Tomc...   6                    [OK]

這裡寫圖片描述

上面 “7.0.73-jre7, 7.0-jre7, 7-jre7, 7.0.73, 7.0, 7”等等 是這個tomcat庫支援的tag(標籤),這裡我們選用的是 “7” 這個標籤

2、拉取Docker Hub裡的映象

docker pull tomcat:7

3、拉取完成後檢視本地的映象

docker images #所有映象
docker image tomcat:7  #檢視REPOSITORY為tomcat:7的映象

建立個人的Docker映象

建立Dockerfile檔案

mkdir -p /usr/local/dockerfile/massive
cd /usr/local/dockerfile/massive
touch Dockerfile

編輯Dockerfile

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

注:tomcat-users.xml可以在tomcat/conf目錄找到,拷貝一個到此目錄

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

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

build這個映象

docker build -t massive:tomcat 

執行個人定製的Docker映象

docker run -p 8081:8080  massive:tomcat

將web應用部署至容器裡執行的tomcat

mvn tomcat7:deploy 

web應用會通過tomcat的部署機制拷貝至容器的 /usr/local/tomcat/webapps/${project} 下,當Docker容器關閉後,容器內的改動不會儲存至映象,也就是說拷貝至容器的web應用會在容器關閉後被刪除。