IDEA-docker(古老的玩法)

前置动作:

  • 安装好docker,拉取了java镜像(java:8u111-jdk或java:latest)
  • 开发好jar形式的应用,定义好server port,假设为8080

IDEA配置(参考《丝滑的打包部署,一套带走》):

  此处是dockerfile方式制作镜像,compose不在此列。

  • 新建Dockerfile(build/Dockerfile):
    FROM java:8u111-jdk
    
    # MAINTAINER 指令允许你给将要制作的镜像设置作者信息
    MAINTAINER author <author@163.com>
    # 容器内创建一个 app 目录,用来挂载 jar 包
    RUN mkdir -p /app
    # 将 idea-demo-1.0 jar 包复制到 /app/idea-demo.jar
    ADD idea-demo-1.0.jar /app/idea-demo.jar
    # 设置时区
    ENV TZ "Asia/Shanghai"
    # 设置暴露的端口
    EXPOSE 8080
    #dockerfile中增加健康检查,interval表示每个5分钟检查一次,timeout每次超过5秒钟认定为失败,retries失败后轮询3次认定为容器不健康,考虑重启。
    #HEALTHCHECK --interval=60s --timeout=5s --retries=6 \
    #  CMD curl -f http://localhost:8080/health || exit 1
    # 运行 Java 应用程序的命令
    ENTRYPOINT ["java","-jar","/app/idea-demo.jar"]
  • 在IDEA中创建一个Run/Debug configuration,选Docker/Dockerfile。运行后会打包镜像。如果配置了Run选项,打包后会自动启动容器。如配置了Bind ports,则此时启动的容器会暴露出8080端口,供外部访问。
    Name:Package idea-demo
    Server:Docker
    Build
    Dockerfile:build\DockerfileDev
    Context folder:target
    Image tag:idea-demo-1.0
    Run
    Container name:idea-demo
    Bind ports:8080:8080
  • 在IDEA中创建一个Run/Debug configuration,选Docker/Docker Image
    Name:run idea-demo
    Sever:Docker
    Image ID or name:idea-demo-1.0
    Container name:idea-demo
    Bind ports:8080:8080

部署:

  •  把镜像打包成tar:docker save idea-demo -o /tmp/idea-demo.tar
  • 上传tar包到服务器
  • 将tar加载为docker镜像:docker load -i idea-demo.tar
  • 启动容器:docker run -d -p 8081:8080 idea-demo,这样在8081端口上可以访问到idea-demo的内容了。
posted @ 2023-03-04 19:36  badwood  阅读(36)  评论(0编辑  收藏  举报
Badwood's Blog