06271111
This commit is contained in:
parent
243696230a
commit
5b0fd0aa43
|
@ -0,0 +1,153 @@
|
||||||
|
# 基础镜像 - 使用ARM64版本
|
||||||
|
FROM node:18-alpine-arm64 AS base
|
||||||
|
# FROM 899806cd3ba7 as base
|
||||||
|
# 更改 apk 镜像源为阿里云
|
||||||
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||||
|
# 设置 npm 镜像源
|
||||||
|
RUN yarn config set registry https://registry.npmmirror.com
|
||||||
|
|
||||||
|
# 全局安装 pnpm 并设置其镜像源
|
||||||
|
RUN yarn global add pnpm && pnpm config set registry https://registry.npmmirror.com
|
||||||
|
|
||||||
|
# 设置工作目录
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# 复制 pnpm workspace 配置文件
|
||||||
|
COPY pnpm-workspace.yaml ./
|
||||||
|
|
||||||
|
# 首先复制 package.json, package-lock.json 和 pnpm-lock.yaml 文件
|
||||||
|
COPY package*.json pnpm-lock.yaml* ./
|
||||||
|
|
||||||
|
COPY tsconfig.base.json .
|
||||||
|
# 利用 Docker 缓存机制,如果依赖没有改变则不会重新执行 pnpm install
|
||||||
|
#100-500 5-40
|
||||||
|
|
||||||
|
FROM base As server-build
|
||||||
|
WORKDIR /app
|
||||||
|
COPY packages/common /app/packages/common
|
||||||
|
COPY packages/tus /app/packages/tus
|
||||||
|
COPY apps/server /app/apps/server
|
||||||
|
RUN pnpm install --filter common
|
||||||
|
RUN pnpm install --filter tus
|
||||||
|
RUN pnpm install --filter server
|
||||||
|
RUN pnpm --filter common generate && pnpm --filter common build:cjs
|
||||||
|
RUN pnpm --filter tus build
|
||||||
|
RUN pnpm --filter server build
|
||||||
|
|
||||||
|
FROM base As server-prod-dep
|
||||||
|
WORKDIR /app
|
||||||
|
COPY packages/common /app/packages/common
|
||||||
|
COPY packages/tus /app/packages/tus
|
||||||
|
COPY apps/server /app/apps/server
|
||||||
|
RUN pnpm install --filter common --prod
|
||||||
|
RUN pnpm install --filter tus --prod
|
||||||
|
RUN pnpm install --filter server --prod
|
||||||
|
|
||||||
|
FROM server-prod-dep as server
|
||||||
|
WORKDIR /app
|
||||||
|
ENV NODE_ENV production
|
||||||
|
COPY --from=server-build /app/packages/common/dist ./packages/common/dist
|
||||||
|
COPY --from=server-build /app/packages/tus/dist ./packages/tus/dist
|
||||||
|
COPY --from=server-build /app/apps/server/dist ./apps/server/dist
|
||||||
|
COPY apps/server/entrypoint.sh ./apps/server/entrypoint.sh
|
||||||
|
|
||||||
|
RUN chmod +x ./apps/server/entrypoint.sh
|
||||||
|
RUN apk add --no-cache postgresql-client
|
||||||
|
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/app/apps/server/entrypoint.sh" ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FROM base AS web-build
|
||||||
|
# 复制其余文件到工作目录
|
||||||
|
COPY . .
|
||||||
|
RUN pnpm install
|
||||||
|
RUN pnpm --filter web build
|
||||||
|
|
||||||
|
# 第二阶段,使用 nginx 提供服务
|
||||||
|
FROM nginx:stable-alpine-arm64 as web
|
||||||
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||||
|
# 设置工作目录
|
||||||
|
WORKDIR /usr/share/nginx/html
|
||||||
|
# 设置环境变量
|
||||||
|
ENV NODE_ENV production
|
||||||
|
# 将构建的文件从上一阶段复制到当前镜像中
|
||||||
|
COPY --from=web-build /app/apps/web/dist .
|
||||||
|
# 删除默认的nginx配置文件并添加自定义配置
|
||||||
|
RUN rm /etc/nginx/conf.d/default.conf
|
||||||
|
COPY apps/web/nginx.conf /etc/nginx/conf.d
|
||||||
|
# 添加 entrypoint 脚本,并确保其可执行
|
||||||
|
COPY apps/web/entrypoint.sh /usr/bin/
|
||||||
|
RUN chmod +x /usr/bin/entrypoint.sh
|
||||||
|
# 安装 envsubst 以支持环境变量替换
|
||||||
|
RUN apk add --no-cache gettext
|
||||||
|
# 暴露 80 端口
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
CMD ["/usr/bin/entrypoint.sh"]
|
||||||
|
|
||||||
|
|
||||||
|
# 使用 Nginx 的 Alpine 版本作为基础镜像
|
||||||
|
FROM nginx:stable-alpine-arm64 as nginx
|
||||||
|
|
||||||
|
# 替换 Alpine 的软件源为阿里云镜像
|
||||||
|
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
||||||
|
|
||||||
|
# 设置工作目录
|
||||||
|
WORKDIR /usr/share/nginx/html
|
||||||
|
|
||||||
|
# 设置环境变量
|
||||||
|
ENV NODE_ENV production
|
||||||
|
|
||||||
|
# 安装 envsubst 和 inotify-tools
|
||||||
|
RUN apk add --no-cache gettext inotify-tools
|
||||||
|
|
||||||
|
# 创建 /data/uploads 目录
|
||||||
|
RUN mkdir -p /data/uploads
|
||||||
|
|
||||||
|
# 暴露 80 端口
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
# 使用 ARM64 版本的 Firefox 镜像
|
||||||
|
FROM linuxserver/firefox:arm64v8-latest
|
||||||
|
|
||||||
|
# 安装中文字体和语言包
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y fonts-noto-cjk language-pack-zh-hans && \
|
||||||
|
locale-gen zh_CN.UTF-8 && \
|
||||||
|
update-locale LANG=zh_CN.UTF-8
|
||||||
|
|
||||||
|
# 设置环境变量
|
||||||
|
ENV LANG=zh_CN.UTF-8 \
|
||||||
|
LANGUAGE=zh_CN:zh \
|
||||||
|
LC_ALL=zh_CN.UTF-8
|
||||||
|
|
||||||
|
|
||||||
|
# 创建 Firefox 配置目录
|
||||||
|
RUN mkdir -p /root/.mozilla/firefox/default-release
|
||||||
|
|
||||||
|
# 创建 prefs.js 文件并设置 User-Agent
|
||||||
|
RUN echo -e 'user_pref("general.useragent.override", "MyCustomUserAgent/1.0");' > /root/.mozilla/firefox/default-release/prefs.js && \
|
||||||
|
chmod 644 /root/.mozilla/firefox/default-release/prefs.js
|
||||||
|
# 继续使用基础镜像的入口点
|
||||||
|
ENTRYPOINT ["/init"]
|
||||||
|
|
||||||
|
FROM linuxserver/chromium:arm64v8-latest
|
||||||
|
|
||||||
|
# 安装中文字体包
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
fonts-noto-cjk \
|
||||||
|
fonts-noto-cjk-extra \
|
||||||
|
&& rm -rf /var/lib/apt/lists/* \
|
||||||
|
&& fc-cache -f -v
|
||||||
|
|
||||||
|
# 设置语言环境
|
||||||
|
ENV LANG=zh_CN.UTF-8 \
|
||||||
|
LANGUAGE=zh_CN:zh \
|
||||||
|
LC_ALL=zh_CN.UTF-8
|
||||||
|
|
||||||
|
|
||||||
|
ENTRYPOINT ["/init"]
|
|
@ -93,7 +93,7 @@ export default function DeviceModal() {
|
||||||
deviceId,
|
deviceId,
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log(`文件 ${fileId} 关联成功`);
|
console.log(`文件 ${fileId} 关联create成功`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`文件 ${fileId} 关联失败:`, error);
|
console.error(`文件 ${fileId} 关联失败:`, error);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ server {
|
||||||
# 监听80端口
|
# 监听80端口
|
||||||
listen 80;
|
listen 80;
|
||||||
# 服务器域名/IP地址,使用环境变量
|
# 服务器域名/IP地址,使用环境变量
|
||||||
server_name 192.168.28.194;
|
server_name 192.168.105.14;
|
||||||
|
|
||||||
# 基础性能优化配置
|
# 基础性能优化配置
|
||||||
# 启用tcp_nopush以优化数据发送
|
# 启用tcp_nopush以优化数据发送
|
||||||
|
@ -100,7 +100,7 @@ server {
|
||||||
# 仅供内部使用
|
# 仅供内部使用
|
||||||
internal;
|
internal;
|
||||||
# 代理到认证服务
|
# 代理到认证服务
|
||||||
proxy_pass http://192.168.28.194:3000/auth/file;
|
proxy_pass http://192.168.105.14:3000/auth/file;
|
||||||
|
|
||||||
# 请求优化:不传递请求体
|
# 请求优化:不传递请求体
|
||||||
proxy_pass_request_body off;
|
proxy_pass_request_body off;
|
||||||
|
|
|
@ -19,7 +19,6 @@ model Taxonomy {
|
||||||
terms Term[]
|
terms Term[]
|
||||||
objectType String[] @map("object_type")
|
objectType String[] @map("object_type")
|
||||||
order Float? @map("order")
|
order Float? @map("order")
|
||||||
|
|
||||||
@@index([order, deletedAt])
|
@@index([order, deletedAt])
|
||||||
@@map("taxonomy")
|
@@map("taxonomy")
|
||||||
}
|
}
|
||||||
|
@ -30,6 +29,7 @@ model Term {
|
||||||
taxonomy Taxonomy? @relation(fields: [taxonomyId], references: [id])
|
taxonomy Taxonomy? @relation(fields: [taxonomyId], references: [id])
|
||||||
taxonomyId String? @map("taxonomy_id")
|
taxonomyId String? @map("taxonomy_id")
|
||||||
order Float? @map("order")
|
order Float? @map("order")
|
||||||
|
|
||||||
description String?
|
description String?
|
||||||
parentId String? @map("parent_id")
|
parentId String? @map("parent_id")
|
||||||
parent Term? @relation("ChildParent", fields: [parentId], references: [id], onDelete: Cascade)
|
parent Term? @relation("ChildParent", fields: [parentId], references: [id], onDelete: Cascade)
|
||||||
|
@ -44,6 +44,7 @@ model Term {
|
||||||
createdBy String? @map("created_by")
|
createdBy String? @map("created_by")
|
||||||
depts Department[] @relation("department_term")
|
depts Department[] @relation("department_term")
|
||||||
hasChildren Boolean? @default(false) @map("has_children")
|
hasChildren Boolean? @default(false) @map("has_children")
|
||||||
|
device Device[] @relation("DeviceTerm")
|
||||||
|
|
||||||
@@index([name]) // 对name字段建立索引,以加快基于name的查找速度
|
@@index([name]) // 对name字段建立索引,以加快基于name的查找速度
|
||||||
@@index([parentId]) // 对parentId字段建立索引,以加快基于parentId的查找速度
|
@@index([parentId]) // 对parentId字段建立索引,以加快基于parentId的查找速度
|
||||||
|
@ -227,7 +228,7 @@ model Device {
|
||||||
updatedAt DateTime @updatedAt @map("updated_at")
|
updatedAt DateTime @updatedAt @map("updated_at")
|
||||||
deletedAt DateTime? @map("deleted_at")
|
deletedAt DateTime? @map("deleted_at")
|
||||||
resources Resource[] @relation("DeviceResources")
|
resources Resource[] @relation("DeviceResources")
|
||||||
|
terms Term[] @relation("DeviceTerm")
|
||||||
@@index([deptId])
|
@@index([deptId])
|
||||||
@@index([systemType])
|
@@index([systemType])
|
||||||
@@index([deviceType])
|
@@index([deviceType])
|
||||||
|
|
Loading…
Reference in New Issue