Docker-compose部署jar包服务
前⾔
最近有⼩伙伴来咨询⾃⼰的,我很是激动,但是我没有部署⼀个线上版本,所以只能让他们拉项⽬本地跑起来。然后告诉他们那个功能在哪⾥哪⾥。所以我准备部署⼀个线上版本,于是就有了这篇博⽂,主要做下过程记录。
⾸先想到的就是java -jar或是直接运⾏jar包,但是总是不愿意使⽤这种⽼⼟的⽅式。后来查了⼀些资料,综合考虑下,决定选⽤docker-compose 来部署我的项⽬。
如果部署的是war包,请移步:
准备
Docker-compose基础及安装:
github下载很慢,提供下我下载了半个⼩时的版本:
提取码:iplz
打包
打包过程遇到了⼀些坑,这⾥直接贴⼀下打包配置插件
<build>
<!--⾃定义打包⽂件名-->
<finalName>gourd-hu</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<!--启动类路径-->
<mainClass&urd.hu.ServiceHuApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
这个⾃⼰测试了很多版本,贴⼀下我测试通过的配置:
version: "3"
services:
gourd-hu-service:
# 指定容器名称
container_name: gourd-hu
# 重启机制
restart: always
image: java:8
volumes:
# 本地jar包路径
- /usr/gourd/gourd-hu/gourd-hu.jar:/gourd-hu.jar
# 挂载⽇志 -v A:B ,A指宿主机位置,B指容器位置
- ./logs:/logs
# 指定容器时间为宿主机时间
maven打包本地jar包- /etc/localtime:/etc/localtime
# 访问端⼝
ports:
- "8088:8088"
environment:
# 指定时区
- TZ="Asia/Shanghai"
#启动容器后执⾏的命令
entrypoint: java -server -Xms256m -Xmx256m -jar -Dserver.port=8088 -Dspring.profiles.active=local gourd-hu.jar
注意点:
- /usr/gourd/gourd-hu/gourd-hu.jar:/gourd-hu.jar 这个挂载需要加,不然启动命令⾥不能直接使⽤gourd-hu.jar,启动会报错- ./logs:/logs ⼀般需要将log⽇志挂载出来(: 前⾯的是宿主机的路径,:后⾯的是容器内的路径);
不然需要使⽤命令:doker logs 容器名/ID 查看⽇志 或者 docker exec -it 容器名称/ID bash 进⼊容器内查看⽇志
启动
新建⼀个项⽬⽬录,将 打好的jar包和 l ⽂件上传进去。
使⽤命令⼯具(putty 或者 都可以) 进⼊到⾃⼰新建的项⽬路径;
然后 直接使⽤命令 docker-compose up -d 启动jar包。
docker ps 命令查看刚启动的服务,如下说明启动成功。
⽇志查看,直接到挂载⽬录 logs下查看⽇志,也可以使⽤ docker logs 容器名/ID 查看⽇志
结语
docker-compose 部署jar包就完成了,如果本⽂有不对的地⽅,欢迎指正。最后奉上⾃⼰的开源项⽬,有兴趣的⼩伙伴可以下载看看。cloud-plus:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论