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

docker与java的前世今生(一)

Docker 悠扬 253次浏览 已收录 0个评论

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年以上工作经验,从事2年微服务架构搭建工作,有大数据处理相关工作经验,使用spring全家桶包括:Spring,SpringBoot,SpringCloud 数据层组件服务使用SpringDataJpa,Mybatis以及其他第三方组件Sharding-JDBC,Sharding-Proxy分库分表。熟悉微服务,服务降级,限流,分流,做过项目源码修改,有cat,apollo,nacos使用经验,有Lostash,Elasticsearch,kibana,mysqlMHA生产实践经验,使用开源代码Apache Sarding项目,修改源码支持mysql分库分表使用年月日小时分库分表,docker做集群服务,Jekins做项目发布,GitLab做项目管理,使用docker容器部署,熟悉消息队列RabbitMQ,Kafka,ActiveMQ。RuoYi-Vue-Atomikos项目开源加入生态圈组件,项目支持分布式事务,界面添加多数据源,数据源动态配置,切面切换,多数据源事务支持,支持区域数据源配置,用于区域数据切分,数据层次分库。项目地址:https://gitee.com/zsiyang/ruoyi-vue-atomikos
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址