登录
  • 欢迎访问悠扬的技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站😉

docker与java的前世今生(一)

Docker 悠扬 709次浏览 已收录

1.前世与今生

     :lol: 调皮一下,本次打包方式基于Dokerfile进行镜像制作,docker-compose进行容器部署,需要的准备好的只是一个简单的可执行jar包。这种方式对于springboot项目最为合适。同志们可以跟我的步骤放心执行,这种方式,生产环境使用后我才整理出来,说白了就是笔记。

       另外一种方式基于maven进行打包上次到镜像仓库的方式,后面有机会在发出来。

2.Dockerfile

FROM java:8
# 将targer目录下的jar包复制到docker容器/home/springboot目录下面目录下面
ADD zkjy-data-original-server.jar /home/springboot/zkjy-data-original-server.jar
RUN bash -c 'touch /zkjy-data-original-server.jar'
# 声明服务运行在38081端口
EXPOSE 38081
# 执行命令
#ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /home/springboot/app.jar
#ENTRYPOINT ["sh", "-c", "java ${JVM_OPTS} ${EXT_OPTS} -jar /home/springboot/app.jar > /dev/null 2>&1 &"]
CMD java ${JVM_OPTS} ${EXT_OPTS} -jar /home/springboot/zkjy-data-original-server.jar
# 指定维护者名称
MAINTAINER JIERUI

3.docker-compose.yml

version: '3.7'
services:
  zkjy-data-original-server:
    image: zkjy/zkjy-data-original-server:1.0.0
    restart: "always"
    ports:
      - 38081:38081
    working_dir: /home/springboot
    container_name: "zkjy-data-original-server"
    volumes:
      - "/home/docker/zkjy-data-original-server/config:/home/springboot/config"
    environment:
      - JVM_OPTS=-Xms512m -Xmx1024m -Xmn256m -Xss256k -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+UseG1GC -XX:+PrintGCDetails -XX:MaxGCPauseMillis=100 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/dump.log
      - EXT_OPTS=-Djava.awt.headless=true -Dfile.encoding=UTF-8

4.生成镜像并启动容器

4.1以上文件包括jar包放到一个目录里面去,如下:

docker与java的前世今生(一)

4.2执行命令

docker build -t zkjy/zkjy-data-original-server:1.0.0 .   #生成镜像文件
docker-compose up -d  #启动容器
#配置正确的情况下,到这里容器应该正常启动了

4.3常用排错命令

docker rmi zkjy/zkjy-data-original-server:1.0.0  #删除镜像
docker logs -f zkjy-data-original-server  #查看日志
docker exec -it zkjy-data-original-server /bin/bash #进入容器内部

      我这里的jar包依赖于外部配置文件,所有我的docker-compose里面有个外部挂载目录,此目录和jar保持同级,这样可以动态加载配置启动,具体情况具体处理,如果,jar包包含了配置文件在里面,那么就不需要挂载,但是这种打在jar包中的方式,不利于项目排错,不建议使用。

 


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明docker与java的前世今生(一)
喜欢 (2)
支付宝[]
分享 (0)
悠扬
关于作者:
10年以上工作经验:6年以上微服务架构设计搭建经验。 曾任岗位:项目经理、架构师。 擅长领域:大数据、数据库,架构设计,资源优化。 获得业绩: 1.实用新型发明专利1个,修改Apache Sharding源码设计实现分库分表程序增强方案。 2.开源项目一个:https://gitee.com/zsiyang/ruoyi-vue-atomikos (加入开源生态圈)。 3.个人技术博客地址:https://www.nxhz1688.com