Docker一键部署若依admin管理系统

使用docker-compose 一键启动ruoyi-admin

首先将ruoyi-admin构建为docker镜像

第一步 编写DockerFile

查看ruoyi-admin配置文件需要的依赖

查看springboot配置文件yml

spring:
    redis:
        database: 0
        host: ${REDIS_HOST}
        port: ${REDIS_PORT}
        password: ${REDIS_PASS}
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: ${MYSQL_URL}
                username: ${MYSQL_USER}
                password: ${MYSQL_PASS}

查看yml得知需要redis,和mysql的依赖
将配置文件中的redis,mysql主机地址,密码等参数使用环境变量${REDIS_HOST}等传递,方便在外部配置

修改完毕后使用maven打包,打成jar包

开始编写DockerFile

FROM openjdk:8

EXPOSE 80

COPY ruoyi-admin.jar /usr/local

ENV REDIS_HOST=${REDIS_HOST}
ENV REDIS_PORT=${REDIS_PORT}
ENV REDIS_PASS=${REDIS_PASS}
ENV MYSQL_URL=${MYSQL_URL}
ENV MYSQL_USER=${MYSQL_USER}
ENV MYSQL_PASS=${MYSQL_PASS}

VOLUME /home/ruoyi/logs:/home/ruoyi/logs

ENTRYPOINT ["java","-jar","/usr/local/ruoyi-admin.jar"]

配置解释:

#ruoyi-admin是一个java项目,需要的基础镜像为java,版本为java8

FROM openjdk:8

#ruoyi-admin yml中tomcat的端口为80,所以暴露80端口

EXPOSE 80

#将当前linux目录下的jar包复制到容器内部目录

COPY ruoyi-admin.jar /usr/local

#定义环境变量参数

ENV REDIS_HOST=${REDIS_HOST}
ENV REDIS_PORT=${REDIS_PORT}
ENV REDIS_PASS=${REDIS_PASS}
ENV MYSQL_URL=${MYSQL_URL}
ENV MYSQL_USER=${MYSQL_USER}
ENV MYSQL_PASS=${MYSQL_PASS}

#将日志映射到外部

VOLUME /home/ruoyi/logs:/home/ruoyi/logs

第二步 生成docker镜像

DockerFIle编写完毕后,将DockerFile和打好的jar包放在linux服务器的同一个目录

通过docker build -f DockerFile -t ruoyi:1.0 . 命令创建镜像(注意最后有个英文点“.”)

构建完成后就可以使用 docker images 查看到生产的ruoyi镜像了

第三步 编写compose.yaml
name: ruoyi
services:
  mysql:
    container_name: mysql
    image: mysql:8.0 #拉取mysql8.0的版本
    ports:
      - "3306:3306" #端口映射
    environment: #mysql通过环境变量设置密码和数据库
      - MYSQL_ROOT_PASSWORD=123456
      - MYSQL_DATABASE=ry
    volumes:
      - mysql-conf:/etc/mysql/conf.d #配置文件映射到外部卷
      - mysql-data:/var/lib/mysql #数据文件映射到外部卷
      - /etc/localtime:/etc/localtime:ro 
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql # ruoyi项目运行需要基础的一些表,将本地的 init.sql 文件挂载到容器内,容器启动自动初始化数据库
    restart: always
    networks: #设置网络
      - ruoyinet #全部用同一个网络,可以使容器互相通信,可以使用容器名代替ip

  redis:
    image: bitnami/redis:latest
    container_name: redis
    environment:
      - REDIS_PASSWORD=123456
    ports:
      - '6379:6379'
    volumes:
      - redis-data:/bitnami/redis/data
      - redis-conf:/opt/bitnami/redis/mounted-etc
      - /etc/localtime:/etc/localtime:ro  
    restart: always
    networks:
      - ruoyinet

  ruoyi:
    image: ruoyi:1.0
    container_name: ruoyi
    depends_on:
      - redis
      - mysql
    environment: #环境变量参数名称要和DockerFile中定义的一样
      - REDIS_HOST=redis # ip写容器名(container_name)
      - REDIS_PORT=6379
      - REDIS_PASS=123456
      - MYSQL_URL=jdbc:mysql://mysql:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8  # ip写容器名(container_name)
      - MYSQL_USER=root
      - MYSQL_PASS=123456
    ports:
      - '8080:80'
    volumes:
      - /home/ruoyi/logs:/home/ruoyi/logs
    restart: always
    networks:
      - ruoyinet

volumes: #所有挂载的卷都要在这里声明
  mysql-data:
  mysql-conf:
  redis-data:
  redis-conf:


networks: #使用的网络要在这里声明
  ruoyinet:
第四步 使用docker-compose命令一键运行

在compose.yaml所在目录下执行命令docker-compose up -d

启动完成后docker ps 查看运行的容器,其中包含redis,mysql,ruoyi

访问linux主机ip:8080,就可以看到登录页了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值