
使用docker部署nginx+mysql+redis+springboot若依前后端分离项目
docker容器部署nginx+mysql+redis+springboot若依前后端分离项目
docker部署若依项目
一、环境配置与工具
1.1 环境配置
这是docker部署使用的版本
JDK ==》1.8 (推荐1.8版本)
Mysql ==》5.7.0 (推荐5.7.37版本)--我也是以5.7.37版本为例
Redis ==》latest版本
nginx ==》latest版本
1.2 工具使用
部署过程中使用的一些工具,这里不在讲述centos如何安装docker。请自行参考官网。
1. 一台阿里云服务器 ===》 centos7.3镜像
2. 使用 Xshell 连接服务器
3. 使用 Xftp 上传文件
二、nginx的安装与前端部署
2.1 若依前端部署
1. 首先在vscode新建一个终端
2. 使用 npm install 命令安装依赖
3. 使用 npm run build:prod 命令编译项目
4. 在项目中会生成一个 dist 的一个文件夹
2.2 nginx安装与文件映射
- 首先使用 Xshell工具 连接我们的一个服务器公网ip地址,并且创建两个连接,方便后面调试。
-
使用“01” 这个连接,并且使用命令 cd / 进入根目录
-
创建我们需要映射的文件夹 mkdir -p /mydata/nginx/conf
特别注意:这里的 /mydata/nginx/conf 目录是自己创建的。
-
在/mydata/nginx/conf目录下,使用 Xftp工具 帮我们可视化创建 nginx.conf 文件
-
将下列内容复制到 nginx.conf 文件中
特别注意:需要修改两处地方:下列内容中的 ip地址 换成自己服务器的公网ip地址
附上代码:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 121.89.218.41
charset utf-8;
location / {
root /usr/share/nginx/html/dist;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
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://121.89.218.41:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include /etc/nginx/conf.d/*.conf;
}
6.同理创建 /mydata/nginx/html 目录 ,使用mkdir -p /mydata/nginx/html命令
7.最后可使用Xftp工具将 vscode 编译好的 dist 目录上传至/mydata/nginx/html下注意:这里是将 整个dist目录上传
8.准备工作都弄好了,就可以开始我们的nginx镜像拉取和文件映射了
8.1 首先拉取镜像 docker pull nginx,使用docker images可以查看我们的镜像
8.2 启动nginx 和映射文件
docker run -d -p 80:80 --name ruo-yi-nginx -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx
8.3 使用 docker ps -a 可以查看我们的正在运行的镜像
特别注意: 需要在阿里云控制台的 安全组 中暴露我们的80端口,不然就会GG
最后在我们的浏览器中访问 121.89.218.41:80 这里的ip地址注意更换成自己的公网ip地址
出现若依登陆界面则部署成功,否则就检查映射文件路径是否正确,或者修改 nginx.conf 配置文件
三、mysql的安装与配置
注:这里mysql的映射会比较麻烦,请仔细阅读。
1、首先创建我们的映射文件夹/mydata/mysql/conf 和/mydata/mysql/data
mkdir -p /mydata/mysql/conf
mkdir -p /mydata/mysql/data
2、我们先拉取镜像,使用 指定版本 5.7.37, 注意不要少了 冒号。且使用docker images查看镜像。
docker pull mysql:5.7.37
3、首先运行一个简单的mysql,密码是123456,注意它的id。
docker run -d -p 3306:3306 --name test-mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.37
3、并将它的配置文件复制到主机。注意这里的 44d55313fe42是容器id
docker cp 44d55313fe42:/etc/mysql /mydata/mysql/conf
可以使用Xftp查看是否成功复制
4、有了配置文件之后,删掉我们创建的这个简单mysql
docker stop 44d55313fe42
docker rm 44d55313fe42
可以看到,容器已经被删除了
5、最后我们可以使用命令运行和映射mysql了,注意去阿里云安全组暴露3306端口!!!
docker run -d -p 3306:3306 --name ruo-yi-mysql -v /mydata/mysql/conf/mysql:/etc/mysql -v /mydata/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.37
6、使用navicat测试连接
7、我们新建一个test数据库,看看在主机中是否同步。
我们发现可以使用远程连接了。
8、创建若依的数据库,名称为 ryadmin。并且导入sql
四、redis的安装与配置
注:我们同样需要一个配置文件,redis的配置文件可以从官网下载
附上链接:http://download.redis.io/redis-stable/redis.conf
不能跳转的,请复制链接到浏览器地址打开。
1、我们创建我们需要映射的文件夹/mydata/redis/conf和/mydata/redis/data
mkdir -p /mydata/redis/conf
mkdir -p /mydata/redis/data
2、上传redis.conf之前,需要对它进行修改
2.1、首先我们打开文件,查找bind 127.0.0.1
2.2、修改它的ip为 0.0.0.0
2.3、配置我们的密码
requirepass 123456
3、使用Xftp将redis.conf文件上传至/mydata/redis/conf目录
4、最后运行和映射我们的redis,注意去阿里云的安全组暴露6379端口!!!!
docker pull redis
docker run -d -p 6379:6379 -v /mydata/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /mydata/redis/data:/data --name ruo-yi-redis redis redis-server /usr/local/etc/redis/redis.conf
5、可以使用RedisDesktopManager验证我们的连接。
五、springboot打包与Dockerfile文件编写
1、首先需要修改application.yml文件中的Redis配置
2、再修改application-druid的mysql配置,注意IP地址需要填公网ip,不能填localhost。
3、使用maven打包
4、编写Dockerfile文件,文件名字必须叫Dockerfile,80%的项目都这么做。
附上代码:
FROM java:8
VOLUME /tmp
ADD *.jar /app.jar
EXPOSE 8080
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
5、最后将我们的jar包和Dockerfile文件都上传至/mydata/docker目录下
mkdir -p /mydata/docker
6、我们cd进入/mydata/docker目录下
使用docker build -t ruo-yi-admin . 编译项目
特别注意:这里有一个点,漏了会报错
7、再运行我们打包好的这个容器镜像
docker run -d -p 8080:8080 --name ruoyi-admin ruo-yi-admin
docker ps -a
7.1、查看ruo-yi-admin运行的ID
7.2、使用命令查看启动日志,出现如下图,说明启动成功
docker logs -f 153afa854100
7.3、最后最后!!如果报错可以根据 启动日志来判断是哪一个环境出现了问题。
- 比如mysql是否密码、IP地址是否配置正确,数据库是否建立。
- redis的IP地址是否正确,redis.conf的文件是否有修改
8、再次访问 121.89.218.41:80
8.1、输入验证码,点击登陆,这样前后端都部署成功了
更多推荐
所有评论(0)