前言
大学期间创新项目基地的项目,因为我服务器寄了,同组同学用这个项目作毕设,我就将其迁到导师的服务器上,做个记录,以免之后还要用
引用站外地址
本地启动
1. 数据准备
1. MySQL
原始数据在机房服务器的WaterQuality
数据库里
2. Redis
Redis
部署在导师的服务器上,用的是docker-compose
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| version: '1.0' services: redis: image: redis restart: always hostname: redis container_name: redis privileged: true ports: - 6379:6379 environment: TZ: Asia/Shanghai volumes: - ./data:/data - ./conf/redis.conf:/etc/redis/redis.conf - ./logs:/logs command: ["redis-server","/etc/redis/redis.conf"]
|
像下面一样建好文件目录,redis.conf
下载地址:Redis配置文件示例
修改redis.conf
中的bind
和requirepass
bind 127.0.0.1 -::1
改为bind 0.0.0.0
# requirepass foobared
去掉#
,将footbared
改为自己的密码
然后启动docker-compose
,记得开启服务器防火墙
1 2
| # 启动docker compose docker compose up -d
|
2. 爬虫
如果改了数据库,要修改insertData()
方法的参数
1. 上传
用Maven
打包完后,将其和所需要的浏览器驱动复制到Windows
服务器(需装Jdk
和Edge
)中,然后先Java -jar pachong-1.0.jar
测试一下,注意要先将报错重启的代码注释掉
如果驱动报错,先找到浏览器的设置,查看浏览器版本后,去官网更新驱动,更新完需重新打包
引用站外地址
Microsoft Edge - Webdriver
windows.net
2. 定时任务
创建定时任务,按图一步步来就行
3. 后端
主要就是改MySQL
和Redis
,将这些配置改好就能正常启动
4. 前端
找到package.json
,安装npm
就可以直接启动dev
了
5. 修改数据源
进入系统后,系统的大屏或报表可能会出现异常,需要重新进入报表设计器
进行配置。
随便点进一个报表,修改云服务器
里的驱动
、数据源地址
、用户名
和密码
背景图在[WaterQuality]\jeecg-boot-master\background\background.jpg
云服务器部署
1. Dockerfile
主要修改暴露的端口和项目地址
1. 后端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| FROM anapsix/alpine-java:8_server-jre_unlimited
MAINTAINER jeecgos@163.com
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
WORKDIR /jeecg-boot
EXPOSE 8090
ADD ./target/jeecg-system-start-3.4.4.jar ./
CMD sleep 60;java -Djava.security.egd=file:/dev/./urandom -jar jeecg-system-start-3.4.4.jar
|
2. 前端
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| FROM nginx MAINTAINER jeecgos@163.com VOLUME /tmp ENV LANG en_US.UTF-8 RUN echo "server { \ listen 8091; \ location /jeecgboot/ { \ proxy_pass http://{{后端地址}}:8090/jeecg-boot/; \ proxy_redirect off; \ proxy_set_header Host jeecg-boot-system; \ proxy_set_header X-Real-IP \$remote_addr; \ proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \ } \ #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \ location / { \ root /var/www/html/; \ index index.html index.htm; \ if (!-e \$request_filename) { \ rewrite ^(.*)\$ /index.html?s=\$1 last; \ break; \ } \ } \ access_log /var/log/nginx/access.log ; \ } " > /etc/nginx/conf.d/default.conf \ && mkdir -p /var/www \ && mkdir -p /var/www/html
ADD dist/ /var/www/html/ EXPOSE 8091 EXPOSE 443
|
2. 部署
idea有个docker
插件,可以远程连接构建镜像、运行容器之类的
引用站外地址
在IDEA中通过密钥认证的方式使用SSH连接远程Linux服务器_idea使用公钥
二木成林
1. idea
远程部署
安装好插件后,Dockerfile
文件会有个启动的标志,点击Edit Run Configuration
,其中Build
为构建镜像,Run
为启动容器,右侧的Modify
可以添加一些选项,如端口、挂载等等
2. 手动上传
手动上传要将打包好的文件上传至服务器相应位置
以后端为例,Dockerfile
里标明了jar
包的位置为ADD ./target/jeecg-system-start-3.4.4.jar ./
然后在Dockerfile
所处的路径下,构建镜像,并以后台模式启动容器(要指定对应端口)
1 2 3 4 5
| # 构建镜像 docker bulid . -t waterquality_back
# 后台启动容器 docker run --name waterquality_back -p 8090:8090 -d waterquality_back
|
前端一样操作即可
3. docker-compose
远程部署
在尝到idea
远程连接docker
的甜头后,果断写了docker-compose
,直接一键远程部署😋
手写了个docker-compose.yml
,放在项目根目录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| version: '1.0' services: jeecg-boot-vue3: networks: - waterquality build: context: ./jeecgboot-vue3-master dockerfile: Dockerfile restart: always container_name: waterquality-front image: waterquality-front hostname: waterquality-front ports: - 8091:8091
jeecg-boot-system: networks: - waterquality build: context: ./jeecg-boot-master/jeecg-module-system/jeecg-system-start dockerfile: Dockerfile restart: always container_name: waterquality-back image: waterquality-back hostname: waterquality-back ports: - 8090:8090
networks: waterquality: driver: bridge
|
The character [_] is never valid in a domain name.
我之前写容器名用的是waterquality_back
,域名也用的是这个,结果报错了
这个错误是Java中的java.lang.IllegalArgumentException
,它表明某个地方使用了不允许在域名中出现的字符。根据报错信息来看,是因为域名中包含了下划线字符[_]
,而根据域名规范,域名中不允许出现下划线。
所以现在改成了waterquality-back
我这里用了networks
,所以前端的项目地址改为容器名加端口号就行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| FROM nginx MAINTAINER jeecgos@163.com VOLUME /tmp ENV LANG en_US.UTF-8 RUN echo "server { \ listen 8091; \ location /jeecgboot/ { \ proxy_pass http://waterquality-back:8090/jeecg-boot/; \ proxy_redirect off; \ proxy_set_header Host waterquality-back; \ proxy_set_header X-Real-IP \$remote_addr; \ proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; \ } \ #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \ location / { \ root /var/www/html/; \ index index.html index.htm; \ if (!-e \$request_filename) { \ rewrite ^(.*)\$ /index.html?s=\$1 last; \ break; \ } \ } \ access_log /var/log/nginx/access.log ; \ } " > /etc/nginx/conf.d/default.conf \ && mkdir -p /var/www \ && mkdir -p /var/www/html
ADD dist/ /var/www/html/ EXPOSE 8091 EXPOSE 443
|
点击左上角的双箭头后,一键部署
Docker Compose execution failed
第一次用需要下载Docker Desktop,下载好后,点击setting
->Build, Execution, Deployment
->Docker
->Tools
将下方配置好就行