一、使用maven打包【package】
1.在maven里找到package双击就可以了。 so eazy
2.在你的项目文件夹右键,选择打开于 Explorer,就会打开你项目所在的资源管理器。 so eazy
3.在资源管理器中进入项目目录,找到target目录,进入,就能看到你对应打好的jar包了。so eazy
二、服务器准备工作
1.上传jar包到服务器
我这目前没有富裕的服务器了,搭了个虚拟机模拟服务器环境,我用的是Centos7.
2.创建DockerFile
在你上传的jar包目录下创建一个文件,命名为Dockerfile。内容如下,按照自己的需求替换端口,以及你对应的jar包名称。
#jdk版本
FROM adoptopenjdk/openjdk8-openj9:alpine-slim
RUN mkdir -p /java_project
WORKDIR /java_project
COPY yourjarname.jar ./yourjarname.jar
#指定端口
CMD ["--server.port=9544"]
ENV TZ=Asia/Shanghai
#时区配置
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apk add --update font-adobe-100dpi ttf-dejavu fontconfig
EXPOSE 9544
ENTRYPOINT ["java", "-jar", "yourjarname.jar","--spring.profiles.active=prod"]
3.创建运行脚本
如果你迭代更新部署的动作不多的话,没必要写脚本,直接docker build就可以,我这边是这种需求比较多,我又很懒,所以简单写一个,每次运行就可以了,基本内容如下:
# 定义镜像相关配置
image_name='your_image_name'
image_tag='1.3'
line_tag='your_image_name-1.3'
dockerfile_path='./Dockerfile'
# 使用 Dockerfile 构建镜像
docker build -t ${image_name}:${image_tag} -f ${dockerfile_path} .
if [ $? != 0 ];then
echo "Build image failed"
exit 1
fi
保存以后,记得给自己的脚本执行权限,比如我的执行文件名字是start.sh。
chmod -R 777 startsh
4.运行脚本
./start.sh
等待构建完成即可,完成后输出如下:
而后通过docker images 命令就可以看到构建后镜像信息。
5.运行镜像
使用docker run 命令运行镜像即可。so eazy
docker run -d -p 9544:9544 --name con_name -v /data/version:/data/version -v /opt/upFiles:/opt/upFiles image_name:1.3
而后呢,有几点需要注意,
1.服务需要的端口已经要映射好 -p,
2.需要挂载的目录也要挂载好 -v,否则后续想获取容器内的文件十分麻烦,
3.docker运行以后如果发现无法访问,优先检查服务器防火墙、安全组的对应端口是否开启
#防火墙相关命令
查看想开的端口是否已开:firewall-cmd --query-port=6379/tcp
添加指定需要开放的端口:firewall-cmd --add-port=6379/tcp --permanent
重载入添加的端口:firewall-cmd --reload
查询指定端口是否开启成功:firewall-cmd --query-port=6379/tcp
移除指定端口:firewall-cmd --permanent --remove-port=6379/tcp
最后,想要向开发时候一样看到控制台输出,可以使用portainer。官方给出了镜像,pull下来以后直接运行即可,步骤参考:
1.下载镜像
docker pull portainer/portainer
2.运行
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/run/portainer_data:/data portainer/portainer
3.访问
yourIp:9000/