From 23e690c5aefae464da2dca8e4c2cb13484fe6293 Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sat, 3 Sep 2022 19:49:49 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=89=8D=E5=90=8E=E7=AB=AF=E4=B8=80?= =?UTF-8?q?=E4=BD=93=E5=8C=96=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 前后端代码共用一套镜像文件, 并配置docker-compose 一键部署命令 --- README.md | 4 ++-- client/shared/manager/service.ts | 7 ++----- client/web/package.json | 2 +- docker-compose.yml | 15 +++++++++++++++ package.json | 3 +-- 5 files changed, 21 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 05f4b595..c779400e 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Nightly版 体验地址: [https://nightly.paw.msgbyte.com/](https://nightly.paw. - 可以严谨,也可以乐趣。通过插件的组合可以创造用于不同场景的 Tailchat。可以是面向娱乐,也可以是面向企业 - 后端微服务架构,已经为大规模部署做好了准备。不用担心用户量大了以后怎么办 - + diff --git a/client/shared/manager/service.ts b/client/shared/manager/service.ts index ea0dcb67..14c9eebd 100644 --- a/client/shared/manager/service.ts +++ b/client/shared/manager/service.ts @@ -2,10 +2,7 @@ import { buildRegFnWithEvent } from './buildReg'; /** * 获取服务器地址相关逻辑 - * @default http://127.0.0.1:11000 + * @default "/" (前后端一体) */ export const [getServiceUrl, setServiceUrl, onServiceUrlChange] = - buildRegFnWithEvent<() => string>( - 'serverUrl', - () => 'http://127.0.0.1:11000' - ); + buildRegFnWithEvent<() => string>('serverUrl', () => '/'); diff --git a/client/web/package.json b/client/web/package.json index 9f16d030..6cc468e3 100644 --- a/client/web/package.json +++ b/client/web/package.json @@ -10,7 +10,7 @@ "build": "cross-env NODE_ENV=production rimraf ./dist && pnpm plugins:all && pnpm build:webpack", "build:webpack": "cross-env TS_NODE_PROJECT='tsconfig.node.json' webpack --config ./build/webpack.config.ts", "build:stats": "pnpm build:webpack --profile --json=compilation-stats.json", - "dev": "cross-env TS_NODE_PROJECT='tsconfig.node.json' NODE_ENV=development webpack serve --config ./build/webpack.config.ts", + "dev": "cross-env TS_NODE_PROJECT='tsconfig.node.json' NODE_ENV=development SERVICE_URL=http://127.0.0.1:11000 webpack serve --config ./build/webpack.config.ts", "serve": "npx http-server ./dist", "test": "jest", "analysis": "cross-env ANALYSIS=true pnpm build:webpack", diff --git a/docker-compose.yml b/docker-compose.yml index 2a7d5e15..34cf7d60 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,21 @@ version: "3.3" services: + # 应用网关 + web: + build: + context: . + image: tailchat + restart: unless-stopped + env_file: docker-compose.env + labels: + - "traefik.enable=true" + - "traefik.http.routers.web.rule=Method(`GET`) || (Path(`/`) || PathPrefix(`/main`) || PathPrefix(`/entry`))" + - "traefik.http.services.web.loadbalancer.server.port=11011" + command: npx http-server-spa ./client/web/dist index.html 11011 + networks: + - internal + # 应用网关 service-gateway: build: diff --git a/package.json b/package.json index 6ae9db79..158de34e 100644 --- a/package.json +++ b/package.json @@ -8,10 +8,9 @@ "dev:web": "cd client/web && pnpm run dev", "dev:server": "cd server && pnpm run dev", "start:service": "cd server && pnpm run start:service", - "build": "concurrently npm:build:web npm:build:server", + "build": "concurrently npm:build:web npm:build:server && cp -r client/web/dist/* server/dist/public", "build:web": "cd client/web && pnpm run build", "build:server": "cd server && pnpm run build && echo \"Install server side plugin:\" && pnpm run plugin:install com.msgbyte.tasks com.msgbyte.linkmeta com.msgbyte.github com.msgbyte.simplenotify && mkdir -p ./dist/public && cp -r ./public/plugins ./dist/public && cp ./public/registry.json ./dist/public", - "postbuild": "cp -r client/web/dist/* server/dist/public", "check:type": "concurrently npm:check:type:client npm:check:type:server", "check:type:client": "cd client/web && tsc --noEmit", "check:type:server": "cd server && tsc --noEmit",