docker中怎么部署一个java和mysql的独立项目环境

docker中怎么部署一个java和MySQL的独立项目环境,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

成都创新互联专注于隆化企业网站建设,成都响应式网站建设,购物商城网站建设。隆化网站建设公司,为隆化等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

首先我希望将jar打包到docker中,不用每次拷来拷去,也可以用文件夹,提前定义一个文件夹,把jar包放进去docker启动时自动启动jar包。

打包需要用到dockerfile文件,在运行目录下创建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="suishoupai backend"
WORKDIR app
ADD ruoyi-admin.jar /app/app.jar
EXPOSE 8081
CMD java -jar /app/app.jar

FROM openjdk:8-jdk-alpine 是说我们用的基础镜像是openjdk发布的8-jdk-alpine包,用alpine linux打包的。

ENV LANG C.UTF-8 是说我们要采用UTF-8环境

RUN apk --update add ttf-dejavu && \  rm -rf /var/cache/apk/*
是安装字体库并删除缓存的安装包,字体库是用来生成验证码等功能使用。

MAINTAINER 、LABEL description ,请自行设置
WORKDIR app工作目录这个不需要修改

ADD test-admin.jar /app/app.jar 添加jar包到镜像中,如果是开发环境可以放在目录里,跟打包进去是一样的。

CMD java -jar /app/app.jar 启动jar包,按照自己的需要设置启动参数。

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

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

打包完java镜像之后就需要打包mysql镜像了,首先在运行目录下创建docker-compose.yaml。

想让两个docker共用一个ip,我觉得通过docker-compose配置更清晰,主要思路是创建两个service:

  • 一个app服务使用我们的java镜像,网络模式设置为service:mysql就可以使用mysql的网卡,

  • 一个mysql服务,使用mysql:5.7这里需要注意默认的mysql使用的编码方式不支持中文,需要配置,并设置时区:

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

而后可以有选择的配置要创建的数据库名、root密码等。

最后将mysql的data目录映射到项目目录下的data目录,并将app中的端口发布出来。共外界访问。

配置完成之后通过:

  1. docker-compose up创建镜像

  2. 通过docker-compose start启动镜像

  3. 通过docker-compose stop停止镜像

  4. docker-compose down删除镜像。

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

完整配置文件。如下:

version: '3'
services:
 app:
  container_name: XXXX_app
  image: haol666/XXXX:1.01
  network_mode: "service:mysql"
  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"


 

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。

分享文章:docker中怎么部署一个java和mysql的独立项目环境
链接地址:https://www.cdcxhl.com/article4/jijpoe.html

成都网站建设公司_创新互联,为您提供域名注册企业建站微信小程序企业网站制作外贸网站建设静态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司