Docker 部署
通过 Docker 部署 Mix-Space 的后端
安装 Docker
不论在海外还是中国大陆境内我们都可以使用 Linuxmirrors 提供的 Docker 安装脚本来安装 Docker 和 Docker Compose,它具备可在多种系统上安装 Docker 的能力:
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)也可使用 Docker 官方提供的安装脚本(海外):
curl -fsSL https://get.docker.com | bash -s docker对于 Docker 镜像加速,请在网络上自行搜索或自行搭建,也可使用 1Panel 安装服务器管理的同时安装 Docker 和镜像加速。
例如 1Panel 提供了 docker.1panel.top 镜像加速源,使用方法是在 Docker 全局设置或在 docker-compose.yml 的 image 前添加镜像域名,例如 docker.1panel.top/innei/mx-server:latest
如果您成功安装了 Docker 和 Docker Compose,可以通过以下命令查看版本:
docker -v
# Compose V2(推荐,docker compose 插件)
docker compose version
# 若你仍在使用旧版独立的 docker-compose 二进制
docker-compose -v拉取编排文件
对于旧版本升级请注意!
自 v12 起 Core 已从 MongoDB 迁移到 PostgreSQL,编排文件中不再有 mongo 服务。当前版本(v14)的 docker-compose.yml 由 app、mx-migrate、postgres、redis 四个服务组成。
cd && mkdir -p mx-space/core && cd $_
# 拉取 docker-compose.yml 文件(全球)
wget https://fastly.jsdelivr.net/gh/mx-space/core@master/docker-compose.yml
# 拉取 docker-compose.yml 文件(Gh-Proxy 全球)
wget "https://gh-proxy.org/https://github.com/mx-space/core/blob/master/docker-compose.yml"配置环境变量
我们需要正确配置环境变量,打开获取到的docker-compose.yml文件。
环境变量集中定义在文件顶部的 x-mx-env 锚点里,各服务通过 environment: *mx-env 引用它。这是映射写法(KEY: value),不是列表。请修改 x-mx-env 块:
x-mx-env: &mx-env
TZ: Asia/Shanghai
NODE_ENV: production
REDIS_HOST: redis
PG_HOST: postgres
PG_PORT: '5432'
PG_USER: mx
PG_PASSWORD: mx
PG_DATABASE: mx_core
SNOWFLAKE_WORKER_ID: '1'
ALLOWED_ORIGINS: localhost
JWT_SECRET: YOUR_SUPER_SECURED_JWT_SECRET_STRINGSNOWFLAKE_WORKER_ID 是必填项(0-1023 的整数),生产环境缺失会导致 mx-core 直接启动失败。官方文件里的默认值是 '1'。另外 mx-migrate 也会引用同一个 *mx-env 块并跑完整的 Nest 上下文,所以这里改了迁移步骤也会同步生效——不要只给 app 服务单独加变量。
配置生成
在下方的组件中填入配置,点击复制后粘贴到 docker-compose.yml 的 x-mx-env 块中,覆盖 JWT_SECRET 和 ALLOWED_ORIGINS 的值,如果需要开启加密功能,请添加并将 ENCRYPT_ENABLE 的值改为 true,并填入 ENCRYPT_KEY。
注意:只要设置了 ENCRYPT_KEY(或 MX_ENCRYPT_KEY)而没有显式设 ENCRYPT_ENABLE=false,加密就会被隐式开启。如果暂时只想把密钥填进去而暂不加密,必须显式写 ENCRYPT_ENABLE: false。
变量介绍
Prop
Type
启动服务
docker compose up -d启动后,请按以下清单确认服务正常:
-
docker compose ps显示所有服务状态为 healthy -
curl http://localhost:2333/api/v3/ping返回pong - 浏览器能打开后台初始化页面
http://你的域名/proxy/qaqdmin