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包不用重新生成镜像,直接重启容器即可

 

posted @ 2021-06-18 17:10  yvioo  阅读(1564)  评论(0编辑  收藏  举报