如何部署开源前后端项目
Date: 2023-04-01 17:03:49
ps:这是我对docker学习的一些记录
前置知识
- linux 基础操作
- docker、docker相关知识
服务器方面
获取服务器,阿里云、腾讯云购买皆可
不论学习,还是其他,都要使用服务器端口
1. 在防火墙策略里打开要使用的端口
服务名 | 端口 |
---|---|
ssh; login | 22 |
nginx | 80/443/8080 |
tomcat | 6379 |
mysql | 3306 |
portainer | 9000 |
linux 版本一般为 centos@7
,稳定,当然 ubantu
也行
2. linux 安装 docker
Install Docker Engine on CentOS
根据教程一步步安装即可
3. docker 换源加速下载
- 重新编写配置文件
vim /etc/docker/daemon.json
- 官方源和网易源都不好用,有点卡,修改
daemon.json
,换成清华源
{ "registry-mirrors": [ "https://mirrors.tuna.tsinghua.edu.cn/", "http://mirrors.sohu.com/" ] }
- 重启 docker 服务
systemctl restart docker
4. 使用 dcoker 监控面板 portainer
portainer
是管理docker的轻量级工具,以下为安装步骤
- 拉取镜像
docker pull portainer/portainer
- 运行实例
docker run -p 9000:9000 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /mydata/portainer/data:/data \ -d portainer/portainer
第一次登录的时候需要创建管理员账号,访问地址:ip地址:9000>
前后端开源项目的部署
项目地址:Teaching 在线教学平台 v2.7
涉及支持环境
- mysql 5.6
- redis 6.0
- nginx latest
- Java 1.8.0
1. docker-compose 一键部署环境
- 创建
compose.yml
文件,进行修改,一步到位
version: "3" services: mysqldb: #mysql 数据库 image: mysql:5.6 container_name: mysqldb volumes: #挂载 docker 卷到容器内部,方便数据持久化,不然容器删除后数据也会丢失 - ./mysql:/var/lib/mysql - ./mysqlBackup:/data/mysqlBackup ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: root #数据库初始为root用户设置的默认密码 MYSQL_DATABASE: myproject #数据库名 MYSQL_USER: teachingopen #自定义数据库的用户,权限只作用于MYSQL_DATABASE配置的数据库 MYSQL_PASSWORD: teachingopen #自定义数据库的用户密码,权限只作用于MYSQL_DATABASE配置的数据库 restart: always redisdb: #redis 缓存数据库 image: redis:6.0 container_name: redisdb ports: - "6379:6379" volumes: - /var/redis/data:/data:rw - /usr/local/redis/redis.conf:/etc/redis/redis.conf:rw command: redis-server /etc/redis/redis.conf restart: always
- 运行 docker-compose 文件
docker-compose -f compose.yml up -d
这个文件的作用是 安装并映射好 mysql、redis 数据库目录
2. docker使用nginx部署前端项目
因为 docker
不支持直接挂载文件,只能挂载文件夹,所以只能手动安装 nginx
整体思路
运行 nginx 容器,将容器文件映射到主机目录,这样就不需要进入容器操作设置了。
安装步骤
- 创建文件夹,映射目录前的准备,确认路径否则可能创建不成功
mkdir -p nginx/conf mkdir -p nginx/log mkdir -p nginx/html
-
拉取镜像
docker pull nginx:latest
-
生成容器
docker run --name nginx -p 80:80 -d nginx
访问80端口确认生效 -
复制文件
将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /root/nginx/conf/nginx.conf
将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /root/nginx/conf/conf.d
将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /root/nginx/
去文件夹中查看是否复制成功。 -
删除正在运行的nginx容器
docker rm -f nginx
-
重新运行容器并设置文件映射
-p 主机端口:容器端口
docker run \ -p 80:80 443:443 8080:8080\ --name nginx \ -v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /root/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /root/nginx/log:/var/log/nginx \ -v /root/nginx/html:/usr/share/nginx/html \ -d nginx:latest
大功告成,访问 ip:80
访问到页面,确认设置成功。
3. 前端项目打包部署
在本地安装 nodejs
使用 npm
将前端项目打包,将 /dist
内文件放到 nginx/html
目录,访问 ip 确认部署
上次更新: 2023-04-01 17:20:57
4. 后端项目打包部署
修改 xml 文件配置,在服务器进行配置
本文作者:Gavin's blog
本文链接:https://www.cnblogs.com/isgavin/p/16965740.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步