docker 部署项目,真香! 再也不用配置什么垃圾环境了,直接拉镜像文件,任何地方都可以部署!
准备工作:
在服务器上安装docker
,此处就不详细的讲解怎么安装docker,默认安装成功!
准备源码
项目的结构如下图所示:
在入口模块api
的pom
文件里新增如下代码:
<!-- 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]