根据不同的环境配置,项目打包
1.pom配置
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profileActive>test</profileActive>
</properties>
</profile>
<profile>
<id>pro</id>
<properties>
<profileActive>pro</profileActive>
</properties>
</profile>
</profiles>
<build>
<finalName>forest-patrolmountains-1.0</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>application-dev.yml</exclude>
<exclude>application-pro.yml</exclude>
<exclude>application-test.yml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application-${profileActive}.yml</include>
<include>application.yml</include>
</includes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2.yml配置文件
application.yml
spring:
profiles:
active: @profileActive@
application-dev.yml
application-pro.yml
application-test.yml
3.项目打包
idea先选择clean清除包
再选择package打包
复制jar包
4.服务器是使用docker部署项目
项目jar需要和脚本放在同一目录下
5.Dockerfile 项目docker的配置文件
FROM java:8
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
VOLUME /tmp
ADD forest-patrolmountains-1.0.jar root.jar //这里jar名字需要和打包的jar名字相同
RUN bash -c 'touch /root.jar'
EXPOSE 9001 //项目端口号
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/root.jar"]
6.start.sh docker启动脚本
# 设置环境变量
# 获取当前脚本所在路径
# 设置图片存储本机位置
#volume=/traffic_pic/
# 检查图片存储目录是否存在,如果存在则不创建,如果不存在则创建文件夹
#if [ ! -d "$mysql_volume"];then
# sudo mkdir "mysql_volume"
#fi
# 配置镜像名称
img=forest-patrolmountains
# 配置镜像标签(版本)
tag=1.0
# 配置容器名称
container=forest-patrolmountains
# 判断容器是否存在,存在则删除。
if sudo docker ps -a --filter name=^/$container$ | grep -i "$container"; then
echo "容器: $container 存在,删除容器."
sudo docker stop "$container"
sudo docker rm -f "$container"
else
echo "容器: $container 不存在"
fi
# 判断镜像是否存在,如存在则删除
if sudo docker images --filter=reference="$img:$tag" | grep -i "$img"; then
echo "镜像: $img:$tag 镜像存在, 删除镜像重新构建."
sudo docker rmi $img:$tag
fi
# 构建新镜像
echo "构建forest-patrolmountains新镜像."
sudo docker build -t $img:$tag .
# 启动服务,挂载外部数据信息
echo "启动forest-patrolmountains容器服务!"
sudo docker run -d -p 9001:9001 --restart=always --name $container $img:$tag
# 检测服务是否启动成功
if sudo docker ps --filter name=^/$container$ | grep -i "up"; then
echo "forest-patrolmountains服务启动成功Pass"
else
echo "forest-patrolmountains服务启动失败Fail"
fi