centos7使用Dockerfile(docker-compose)运行jar包
Dockerfile文件
FROM openjdk:8-jdk-alpine MAINTAINER "镜像维护者的姓名和邮箱地址" WORKDIR app ADD demo.jar /app/demo.jar ENV TIME_ZONE=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone EXPOSE 8081 CMD java -jar -Xms512M -Xmx512M -Duser.timezone=GMT+8 /app/demo.jar
如果需要改变配置环境 使用
--spring.profiles.active=test
demo.jar是运行的jar包的名字,根据自己的来
EXPOSE 后面的端口跟jar包启动的端口即可
然后把运行的demo.jar放到和Dockerfile放在同一个目录下
然后执行
docker build -t mydemo:1.0 .
说明:docker build -t 新镜像名字:TAG .
打印
Sending build context to Docker daemon 17.29MB Step 1/6 : FROM openjdk:8-jdk-alpine ---> a3562aa0b991 Step 2/6 : MAINTAINER "镜像维护者的姓名和邮箱地址" ---> Using cache ---> 16e8e339e102 Step 3/6 : WORKDIR app ---> Using cache ---> 995ea3982a9b Step 4/6 : ADD demo.jar /app/demo.jar ---> Using cache ---> 6126614408ad Step 5/6 : EXPOSE 8881 ---> Using cache ---> 2460834128af Step 6/6 : CMD java -jar /app/demo.jar ---> Using cache ---> 0206019397cb Successfully built 0206019397cb Successfully tagged mydemo:1.0
使用
docker images
运行镜像
docker run -dp 8080:8881 mydemo:1.0
docker-compose.yml文件
也可以直接使用docker-compose直接启动
version: '3'
services:
mydemo:
build:
context: . #Dockerfile 所在目录
dockerfile: Dockerfile
image: file-server #镜像名称
restart: unless-stopped
network_mode: "host"
privileged: true
container_name: file-server #容器名称
environment:
- TZ=Asia/Shanghai
volumes:
- /logs:/logs
ports:
- 8080:8080
不使用Dockerfile方式
version: '3'
services:
mydemo:
image: primetoninc/jdk:1.8
ports:
- 8080:8080
restart: "always"
network_mode: "host"
environment:
TZ: Asia/Shanghai
container_name: my-demo
volumes:
- /data/mydemo:/home/mydemo
- /data/mydemo/logs:/logs
- /etc/localtime:/etc/localtime
entrypoint: java -Dspring.profiles.active=prod -Xms512m -Xmx512m -jar /home/mydemo/mydemo-0.0.1.jar
这种方式只是使用了容器环境,然后把jar路径挂载出来,替换jar包不用重新生成镜像,直接重启容器即可
-----------------------有任何问题可以在评论区评论,也可以私信我,我看到的话会进行回复,欢迎大家指教------------------------
(蓝奏云官网有些地址失效了,需要把请求地址lanzous改成lanzoux才可以)
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了