跳至主要內容

2 项目部署

OrdinaryRoad大约 2 分钟

2 项目部署

项目前后端分离,可以使用Docker Compose进行部署,或者clone项目到本地后分别打包后部署

帐号请前往QQ频道open in new window获取

2.1 Docker Compose 部署

2.1.0 Tips

  • Docker Compose示例位于.docker目录中
    • compose.yaml: 前端+后端,需要手动初始化数据库
    • compose-with-mysql.yaml: 前端+后端+MySQL
    • compose-with-nginx.yaml: 前端+后端+Nginx,需要手动初始化数据库
    • compose-with-mysql-nginx.yaml: 前端+后端+MySQL+Nginx
  • 数据库初始化SQL文件位于.docker/ordinaryroad-barrage-fly-mysql/sql/or_barrage_fly.sql
  • 使用MySQL或Nginx时需要先build
    • docker compose -f compose.yaml build ordinaryroad-barrage-fly-mysql
    • docker compose -f compose.yaml build ordinaryroad-barrage-fly-nginx

镜像加速与拉取:仓库链接open in new window

2.1.1 Example

下面是一个部署前端+后端的示例,请确保以下端口号未被占用,或者修改为其他端口

  • 后端:8080,9898
  • 前端:30000

1 新建一个文件夹,文件夹内只需要一个.env文件和一个compose.yaml文件,文件内容在步骤后面

2 拉取镜像

# DOCKER_OPTS="--registry-mirror=https://mirror.ccs.tencentyun.com"
# 拉取最新版1.5.0
docker pull ordinaryroad-docker.pkg.coding.net/ordinaryroad-barrage-fly/docker-pub/ordinaryroad-barrage-fly:1.5.0
docker pull ordinaryroad-docker.pkg.coding.net/ordinaryroad-barrage-fly/docker-pub/ordinaryroad-barrage-fly-ui:1.5.0 

3 给镜像重新打TAG

docker tag ordinaryroad-docker.pkg.coding.net/ordinaryroad-barrage-fly/docker-pub/ordinaryroad-barrage-fly:1.5.0 ordinaryroad-barrage-fly
docker tag ordinaryroad-docker.pkg.coding.net/ordinaryroad-barrage-fly/docker-pub/ordinaryroad-barrage-fly-ui:1.5.0 ordinaryroad-barrage-fly-ui

4 进入compose.yaml文件所在的文件夹,执行启动容器命令docker compose up -d

5 浏览器访问 http://localhost:30000open in new window

.env

# .env
# TODO 根据实际部署情况修改
# 注意:请勿用localhost、127.0.0.1,要求能够被容器访问到的地址
MYSQL_HOST=192.168.1.2
MYSQL_PORT=3306
MYSQL_DATABASE=or_barrage_fly
MYSQL_USERNAME=root
MYSQL_PASSWORD=root
# TODO 根据实际部署情况修改
# 主机名要求能够被浏览器等客户端访问到,端口为容器映射到主机的端口,默认9898
SUB_BASE_URL=ws://localhost:9898
# TODO 管理后台的账号密码
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
# TODO 根据实际需要修改
JAVA_OPTS="-Xmn256m"
# 主机名要求能够被浏览器等客户端访问到,端口号为容器映射到主机的端口,默认8080
SPRING_BOOT_ADMIN_BASE_URL=http://localhost:8080/admin

compose.yaml

# compose.yaml
version: "3.0"
services:
  ordinaryroad-barrage-fly-ui:
    image: ordinaryroad-barrage-fly-ui
    container_name: ordinaryroad-barrage-fly-ui
    environment:
      BASE_URL: http://ordinaryroad-barrage-fly:8080
      SPRING_BOOT_ADMIN_BASE_URL: http://localhost:8080/admin
      SUB_BASE_URL:
    ports:
      - "30000:3000"
    hostname: ordinaryroad-barrage-fly-ui
    restart: always

  ordinaryroad-barrage-fly:
    image: ordinaryroad-barrage-fly
    container_name: ordinaryroad-barrage-fly
    environment:
      MYSQL_HOST:
      MYSQL_PORT:
      MYSQL_DATABASE:
      MYSQL_USERNAME:
      MYSQL_PASSWORD:
      ADMIN_USERNAME:
      ADMIN_PASSWORD:
      JAVA_OPTS:
    ports:
      # 用于访问Spring Boot Admin
      - "8080:8080"
      # 用于连接RSocket
      - "9898:9898"
    hostname: ordinaryroad-barrage-fly
    restart: always

2.2 本地打包运行

  1. 克隆项目到本地 git clone https://github.com/OrdinaryRoad-Project/ordinaryroad-barrage-fly.git
  2. 后端打包 ./gradlew clean bootJar
  3. 前端打包 npm install && npm run build