文章 47
评论 19
浏览 59442
使用docker部署maven多模块项目

使用docker部署maven多模块项目

docker 部署项目,真香! 再也不用配置什么垃圾环境了,直接拉镜像文件,任何地方都可以部署!

准备工作:

在服务器上安装docker,此处就不详细的讲解怎么安装docker,默认安装成功!

准备源码

项目的结构如下图所示:
imagepng

在入口模块apipom文件里新增如下代码:

<!-- Docker maven plugin -->
<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.2.0</version>
            <configuration>
                <imageName>${project.groupId}/${project.artifactId}:${project.version}</imageName>
                <baseImage>java:8</baseImage>
                <maintainer>keppel</maintainer>
                <entryPoint>["java", "-jar", "-Dspring.profiles.active=prod", "/${project.build.finalName}.jar"]</entryPoint>
                <resources>
                    <resource>
                        <targetPath>/</targetPath>
                        <directory>${project.build.directory}</directory>
                        <include>${project.build.finalName}.jar</include>
                    </resource>
                </resources>
            </configuration>
        </plugin>
    </plugins>
</build>

将项目使用git clone 拉倒一个文件夹里面, 切换要用的分支, git pull一下:

git clone https://www.github.com/xxx/xxx.git
cd xxx
git checkout master
git pull

查看已有镜像并删除正在运行的容器和镜像:

docker ps -a
# aaaa表示容器的名字
docker rm -f [aaaa] 
# bbbb:1.0-SNAPSHOT 表示镜像,一般是包名+项目名然后:接版本标签
docker rmi [bbbb:1.0-SNAPSHOT]

开始打包

先打包父工程里面的依赖

mvn clean install package -Dmaven.test.skip

进入项目入口模块api, 执行入口镜像打包

cd api
mvn package docker:build -Dmaven.test.skip

查看镜像和容器,并启动容器

docker images
docker ps -a
# 启动容器的时候-d表示后台运行,-p表示端口映射, --name表示指定容器名字,后面接的是镜像,[]不要哦。
docker run -d -p 1111:1111 --name=[aaaa] [bbbb:1.0-SNAPSHOT]
# 查看启动日志
docker logs --tail 200 -f [aaaa]

哈哈哈哈哈哈哈嗝~

取消