用堡垒机以客户端的方式连接服务器,会唤起xshell(需要提前安装xshell和xftp 家庭版即可免费)。
要上传文件的话从xshell中再点击xftp按钮,打开xftp工具以sftp协议传输文件即可。
su root #连接上服务器 并切换root用户
服务器上全部都是docker部署的数据库。
maraidb bind映射 "/home/apps/mariadb/data:/var/lib/mysql"
1.mysql数据导入:
将sql文件拷贝过去:mv blast_vue.sql /home/apps/mariadb/data
#docker部署的mariadb, 进入容器中。里面没有mysql命令,用mariadb代替
docker exec -it mariadb bash
mariadb -u root -p
create database blast_vue;
use blast_vue;
source /var/lib/mysql/blast_vue.sql;
show tables;
select user, host from user;
GRANT ALL PRIVILEGES ON blast_vue.* TO 'sa'@'%'; #授予sa用户blast_vue数据库权限
FLUSH PRIVILEGES;
2.springboot打成镜像
springboot打成jar包后,在jar包目录下创建文件`Dockerfile`:
FROM java:8
ADD ruoyi-admin.jar app.jar
EXPOSE 8080
ENTRYPOINT [ "java", "-jar", "/app.jar" ]
然后执行命令构建镜像(默认找Dockerfile):
docker build -t blast:v1.0 .
docker save -o blast.tar blast #导出镜像
docker load -i blast.tar #在服务器上导入
启动springboot容器
docker run -itd -p 9151:8080 --restart=always -v /home/apps/blast/project:/home/ruoyi --name=blast_java blast:v1.0 tail -f /dev/null
也可以不用-v,直接在Dockerfile中配置一个匿名卷:VOLUME ["/home/ruoyi"]
3.拉取nginx并打包镜像
docker load -i nginx.tar
docker load -i nginx.tar #在服务器上导入
启动nginx 容器
# 使用host网络模式,方便部署多个前端项目。只需增加新conf配置,并重启docker即可.
# 删除默认站点配置文件或修改里面的listen监听,避免80端口被占用:可能在/etc/nginx/sites-enabled/default 或 /etc/nginx/conf.d/default.conf里
docker run -itd --name=nginx --net=host --restart=always -v /home/apps/nginx/conf.d:/etc/nginx/conf.d -v /home/apps/nginx/data:/data nginx nginx -g "daemon off;"
vim /home/apps/nginx/conf.d/blast.conf #配置nginx监听
server{
listen 82;
server_name localhost;
index index.html;
root /data/dist;
location / {
try_files $uri $uri/ @router;
index index.html;
}
location @router {
rewrite ^.*$ /index.html last;
}
location /prod-api/ { #后端接口转发
proxy_pass http://10.100.2.74:9151; #后端接口地址
proxy_cookie_path / /prod-api;
rewrite ^/prod-api/(.*) /$1 break;
client_max_body_size 500m;
}
}
前端项目打包后移动到-v映射的目录中,然后重启下nginx容器即可:
mv dist /home/apps/nginx/data
docker container restart nginx
测试能否正常访问:
curl localhost:9152
curl localhost:9152/prod-api/
额外:sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
FTP使用TCP端口21上的控制连接建立连接。而,SFTP是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。