使用Docker搭建java通用运行环境-jar版

原创
2019/08/23 13:59
阅读数 719

      本文主要介绍如何将jar包放到固定目录后启动docker容器执行,高手可以绕过,前几天写了一、在docker下部署java、mysql的独立项目环境,将jar包打包到docker内运行,本文是jar包不打包进docker的通用版本。只需设置映射目录即可,做到一个docker镜像启动多个容器运行不同的jar包。       首先还是要打好自己的jar包而后编写dockerfile文件:

FROM openjdk:8-jdk-alpine
ENV LANG C.UTF-8
RUN apk --update add ttf-dejavu && \
      rm -rf /var/cache/apk/*
MAINTAINER "haolin#189.cn"
LABEL description="jarrunner"
WORKDIR app
ADD admin.jar /app/app.jar
EXPOSE 8081
CMD java -jar /app/app.jar

主要是添加字体库。

完成之后执行docker build -t 用户名/镜像名:1.01 . 就可以完成镜像封装了

通过docker image ls查看镜像就能看到打好的镜像包。

 

而后构建docker-compose文件,通过设置映射目录将运行目录下的app目录映射到docker中,jar包改名为app.jar即可。

 volumes:
   - ./app:/app

本人还是建议docker和mysql打包到一起:

version: '3'
services:
 app:
  container_name: XXXX_app
  image: haol666/XXXX:1.01
  network_mode: "service:mysql"
 volumes:
   - ./app:/app
  depends_on:
   - mysql
mysql:
  container_name: xxxx_mysql
  image: mysql:5.7
  command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
  environment:
   TZ: Asia/Shanghai
   MYSQL_DATABASE: XXXX
   MYSQL_ROOT_PASSWORD: XXXX
   MYSQL_USER: 'XXXX'
   MYSQL_PASS: 'XXXX'
   MYSQL_HOST: '%'
  volumes:
   - ./data:/var/lib/mysql
  ports:
   - "8080:443"
  expose:
   - "8080"

配置完成之后通过:

  1. docker-compose up创建镜像
  2. 通过docker-compose start启动镜像
  3. 通过docker-compose stop停止镜像
  4. docker-compose down删除镜像。

   启动后可以通过docker ps查看已启动的服务,或者通过docker ps -a查看所有服务。

 

展开阅读全文
加载中

作者的其它热门文章

打赏
1
0 收藏
分享
打赏
1 评论
0 收藏
1
分享
返回顶部
顶部