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的内容了。