📂后端
🔖docker
2022-12-08 12:04阅读: 104评论: 0推荐: 0

如何部署开源前后端项目

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 换源加速下载

  1. 重新编写配置文件 vim /etc/docker/daemon.json
  2. 官方源和网易源都不好用,有点卡,修改daemon.json,换成清华源
{
"registry-mirrors": [
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/"
]
}
  1. 重启 docker 服务 systemctl restart docker

4. 使用 dcoker 监控面板 portainer

portainer管理docker的轻量级工具,以下为安装步骤

  1. 拉取镜像 docker pull portainer/portainer
  2. 运行实例
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 一键部署环境

  1. 创建 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
  1. 运行 docker-compose 文件 docker-compose -f compose.yml up -d

这个文件的作用是 安装并映射好 mysql、redis 数据库目录

2. docker使用nginx部署前端项目

因为 docker 不支持直接挂载文件,只能挂载文件夹,所以只能手动安装 nginx

整体思路

运行 nginx 容器,将容器文件映射到主机目录,这样就不需要进入容器操作设置了。

安装步骤

  1. 创建文件夹,映射目录前的准备,确认路径否则可能创建不成功
mkdir -p nginx/conf
mkdir -p nginx/log
mkdir -p nginx/html
  1. 拉取镜像 docker pull nginx:latest

  2. 生成容器 docker run --name nginx -p 80:80 -d nginx
    访问80端口确认生效

  3. 复制文件

    将容器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/
    去文件夹中查看是否复制成功。

  4. 删除正在运行的nginx容器 docker rm -f nginx

  5. 重新运行容器并设置文件映射 -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 中国大陆许可协议进行许可。

posted @   悠悠江水  阅读(104)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起