首页 > 其他分享 >docker-compose部署若依

docker-compose部署若依

时间:2023-07-13 16:56:13浏览次数:53  
标签:compose app redis 若依 nginx html conf mysql docker

1、通过Dockerfile构建:jar镜像

1.1、application.yaml (要注意的地方)

# 项目相关配置
ruoyi:
  profile: /home/javaProject/profile   # 文件上传地址:自己写自己linux路径

# 开发环境配置
server:
  # 服务器的HTTP端口,默认为8080   -> 注意端口
  port: 8080

# 用户配置
user:
  redis:
    # 地址
    host: redis
    # 端口,默认为6379  -> 端口不用写:因为直接写了docker-compose的服务名
#    port: 6379
    # 数据库索引
    database: 0
    # 密码
    password: 

1.2、application-druid.yml

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master: #注意:地址为mysql(服务名)
                url: jdbc:mysql://mysql/ry_vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: 写自己的
                password: 写自己的

1.3、构建镜像:ry_jar_image

参考博客:https://blog.csdn.net/weixin_43453221/article/details/109624452

# 路径可以为:
/home/javaProject

image-20230713153746727


1.4、Dockerfile

构建命令

docker build -t ry_jar_image .

FROM java:8
#作者
MAINTAINER laoyang
#jar包添加到镜像中
ADD ruoyi-admin.jar first.jar
#容器暴露的端口 即jar程序在容器中运行的端口
EXPOSE 8080
#容器启动之后要执行的命令
ENTRYPOINT ["java","-jar","first.jar"]

2、docker-compose.yml 启动

2.3、启动docker-compose

image-20230713160022170

# 启动
docker-compose up

# 连接mysql:sql执行。
version: "3.8"
services:
  redis:
    image: redis:6.0.7
    ports:
      - "6382:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:/data
    command: redis-server /etc/redis/redis.conf
  mysql:
    image: mysql:5.7
    privileged: true
    ports:
      - "3308:3306"
    volumes:
      - /app/mysql/log:/var/log/mysql
      - /app/mysql/data:/var/lib/mysql
      - /app/mysql/conf:/etc/mysql/conf.d
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
  nginx:
    image: nginx
    privileged: true
    ports:
      - "80:80"
    volumes:
      - /app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /app/nginx/conf/conf.d:/etc/nginx/conf.d
      - /app/nginx/log:/var/log/nginx
      - /app/nginx/html:/usr/share/nginx/html
    links:
      - ry
  ry:
    image: ry_jar_image
    ports:
      - "8080:8080"
    depends_on:
      - redis
      - mysql

2.2、拷贝nginx的conf文件

2.2.1、创建:存放conf文件夹

拷贝前:先删除

rm -rf /app/nginx
# 1、创建:配置目录
mkdir -p /app/nginx/conf

# 2、创建:日志目录
mkdir -p /app/nginx/log

# 3、创建:html目录
mkdir -p /app/nginx/html

2.2.2、拷贝配置文件

# 1、启动:nginx
docker run --name nginx -p 80:80 -d nginx

# 2、将容器(nginx.conf文件)复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /app/nginx/conf/nginx.conf

# 3、将容器(conf.d文件夹)下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /app/nginx/conf/conf.d

# 4、将容器中的(html文件夹)复制到宿主机
docker cp nginx:/usr/share/nginx/html /app/nginx/

2.2.3、拷贝前端到

# 前端打包dist, 放到目录下
cd /app/nginx/html

2.2.4、修改nginx的default.conf配置文件

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html/dist;
        index  index.html index.htm;
		try_files $uri $uri/ /index.html;
    }
	
	location /prod-api/ {
			proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://ry:8080/;
	}

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

2.3、拷贝:若依的SQL在Navicat执行

注意:如果表导入不进去, 看看是不是中文乱码了, 配置好后,(重新建库),在插入表即可。

# 1、进入配置文件
cd /app/mysql/conf

# 2、vim编辑文件
vim my.cnf

# 3、设置参数
[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

重启一下

docker run -d -p 3308:3306 --privileged=true -v /app/mysql/log:/var/log/mysql -v /app/mysql/data:/var/lib/mysql -v /app/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7

2.4、拷贝:default.conf

# 1、拷贝到位置
cd /app/nginx/conf/conf.d

# 2、把 default.conf 放入。

2.5、拷贝:前端页面

# 1、拷贝到位置
/app/nginx/html

# 2、移动目录
mv cp -r /home/packageA /home/packageB

标签:compose,app,redis,若依,nginx,html,conf,mysql,docker
From: https://www.cnblogs.com/yangzaikongzhongfei/p/17551429.html

相关文章

  • 如何实现查看docker连接数的具体操作步骤
    Docker连接数查看及管理在使用Docker进行应用容器化时,我们经常会遇到需要查看和管理容器的连接数的情况。本文将介绍如何使用Docker命令和相关工具来查看和管理Docker容器的连接数。1.查看Docker容器的连接数要查看Docker容器的连接数,我们可以使用dockerstats命令。该命令可以......
  • docker-machine(v0.16.2)安装,云盘下载
    1、附件下载链接:https://pan.baidu.com/s/1WbTTCKosPuody3ni2UpCkQ提取码:9thm2、安装onosx:$curl-Lhttps://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname-s`-`uname-m`>/usr/local/bin/docker-machine&&\chmod+x/usr/loca......
  • Docker Nginx安装使用以及踩坑点总结
    拉取nginx镜像dockerpullnginx:latest运行镜像暂时不需要配置volume挂载dockerrun--namenginx-p80:80-dnginx参数详解:--namenginx指定容器的名称-p80:80映射端口-d守护进程运行创建volume目录mkdir-p/www/nginx/conf.dmkdir-p/www/nginx/htmlmkd......
  • 如何实现只有80对外开放的宿主机,使用docker实现mysql和redis和外部通信的具体操作步
    使用Docker实现MySQL和Redis与外部通信引言在现代软件开发中,往往需要使用到各种数据库和缓存技术。MySQL是一种常用的关系型数据库,而Redis是一种常用的内存缓存数据库。在部署这些数据库和缓存时,我们常常需要与外部的系统进行通信,例如通过网络连接,提供服务给其他系统。本文将介绍......
  • 若依微服务使用openfeign ,写了一个接口,但是其他项目引入的时候显示找不到这个Bean:Coul
    启动报错:org.springframework.beans.factory.UnsatisfiedDependencyException:Errorcreatingbeanwithname'tokenController':Unsatisfieddependencyexpressedthroughfield'sysLoginService';nestedexceptionisorg.springframework.beans.fa......
  • docker教程
    概述容器较为官方的解释一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。容器化软件适用于基于Linux和Windows的应用,在任何环境中都能......
  • Docker学习路线3:安装设置
    Docker提供了一个名为DockerDesktop的桌面应用程序,简化了安装和设置过程。还有另一个选项可以使用Docker引擎进行安装。DockerDesktop网站Docker引擎DockerDesktopDockerDesktop是一款易于安装的应用程序,可使开发人员快速在其台式机上设置Docker环境。它适用于Windows和......
  • docker 安装 docker 并下载mysql redis镜像
    **步骤:1.Uninstalloldversions(卸载旧版本): sudoyumremovedocker\         docker-client\         docker-client-latest\         docker-common\         docker-latest\  ......
  • 修改docker源和ubuntu源
    1、修改docker源vi/etc/docker/daemon.json增加或修改成如下内容:{"registry-mirrors":["https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://vz2hqrw3.mirror.aliyuncs.com"]}Docker官方中国区:https://registry.doc......
  • Dockerfile静态扫描
    我们的产物都是基于同一Dockerfile生成,因此我们需要保证这个底层Dockerfile的安全性Dockerfile的写法有很多,我一般会采用最简单的方式,即Dockerfile什么都不处理直接RUN#主要是时区跟源的问题,我们需要重封一次[[email protected]]#catDockerfileFROMalpine:la......