Merge remote-tracking branch 'cffnpwr/dev' into dev

This commit is contained in:
nullnyat 2023-02-02 22:52:19 +09:00
commit 58b9ed0621
6 changed files with 96 additions and 4951 deletions

20
.swcrc Normal file
View File

@ -0,0 +1,20 @@
{
"jsc": {
"parser": {
"syntax": "typescript",
"tsx": false,
"decorators": true,
"dynamicImport": false
},
"target": "esnext",
"keepClassNames": true,
"transform": {
"legacyDecorator": false,
"decoratorMetadata": false
}
},
"module": {
"type": "commonjs",
"noInterop": true
}
}

View File

@ -1,15 +1,59 @@
FROM node:lts FROM node:16 AS module
WORKDIR /app
RUN apt-get update RUN apt-get update
RUN apt-get install -y build-essential mecab libmecab-dev mecab-ipadic-utf8 sudo git make curl xz-utils file fonts-noto RUN apt-get install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
WORKDIR /mecab-ipadic-neologd COPY package.json .
RUN corepack enable
RUN pnpm install --prod
FROM module AS build
RUN pnpm install
COPY . .
RUN pnpm build
FROM debian:bullseye AS mecab
RUN apt-get update
RUN apt-get install -y sudo mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git RUN git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
RUN cd mecab-ipadic-neologd && ./bin/install-mecab-ipadic-neologd -n -y -a RUN cd mecab-ipadic-neologd
RUN ./mecab-ipadic-neologd/bin/install-mecab-ipadic-neologd -n -y -p /min
RUN echo "dicdir = /min" > /etc/mecabrc
FROM alpine:3 AS lib
RUN apk update
RUN apk add tini-static
RUN mv /sbin/tini-static /tini
FROM node:16-slim
ENV NODE_ENV="production"
RUN apt-get update && \
apt-get install -y mecab && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
WORKDIR /nullcatchan WORKDIR /nullcatchan
COPY . ./
RUN npm install
RUN npm build
CMD ["npm", "start"] COPY package.json .
COPY --from=module /app/node_modules node_modules
COPY --from=build /app/built built
COPY --from=mecab /min /min
COPY --from=mecab /etc/mecabrc /etc/mecabrc
COPY --from=lib /tini /tini
ENTRYPOINT ["/tini", "--"]
CMD ["node", "./built"]

View File

@ -1,15 +1,12 @@
version: '3' version: '3'
services: services:
app: app:
build: build: .
dockerfile: Dockerfile_production
context: .
args:
- enable_mecab=1
volumes: volumes:
- './config.json:/nullcatchan/config.json:ro' - './config.json:/nullcatchan/config.json:ro'
- './font.ttf:/nullcatchan/font.ttf:ro' - './font.ttf:/nullcatchan/font.ttf:ro'
- './data:/nullcatchan/data' - './data:/nullcatchan/data'
- './ngwords.txt:/nullcatchan/ngwords.txt'
restart: always restart: always
environment: environment:
TZ: Asia/Tokyo TZ: Asia/Tokyo

View File

@ -7,30 +7,20 @@
"dev": "cross-env NODE_ENV=development node ./built", "dev": "cross-env NODE_ENV=development node ./built",
"start": "cross-env NODE_ENV=production node ./built", "start": "cross-env NODE_ENV=production node ./built",
"lint": "prettier --write ./src/", "lint": "prettier --write ./src/",
"build": "tsc", "build": "swc src -d built",
"test": "jest" "test": "jest"
}, },
"dependencies": { "dependencies": {
"@types/accurate-interval": "1.0.0",
"@types/chalk": "2.2.0",
"@types/humanize-duration": "3.27.1",
"@types/lokijs": "1.5.4",
"@types/moji": "0.5.0",
"@types/node": "16.0.1",
"@types/promise-retry": "1.1.3",
"@types/random-seed": "0.3.3",
"@types/request-promise-native": "1.0.18",
"@types/seedrandom": "2.4.28",
"@types/twemoji-parser": "13.1.1",
"@types/uuid": "8.3.1",
"@types/ws": "7.4.6",
"accurate-interval": "1.0.9", "accurate-interval": "1.0.9",
"autobind-decorator": "2.4.0", "autobind-decorator": "2.4.0",
"canvas": "2.8.0", "canvas": "2.8.0",
"chalk": "4.1.1", "chalk": "4.1.1",
"cjp": "1.2.3", "cjp": "1.2.3",
"cross-env": "7.0.3",
"gomamayo-js": "0.2.1", "gomamayo-js": "0.2.1",
"humanize-duration": "3.27.1", "humanize-duration": "3.27.1",
"koa": "2.13.1",
"koa-json-body": "5.3.0",
"lokijs": "1.5.12", "lokijs": "1.5.12",
"memory-streams": "0.1.3", "memory-streams": "0.1.3",
"misskey-reversi": "0.0.5", "misskey-reversi": "0.0.5",
@ -44,25 +34,37 @@
"request-promise-native": "1.0.9", "request-promise-native": "1.0.9",
"seedrandom": "3.0.5", "seedrandom": "3.0.5",
"timeout-as-promise": "1.0.0", "timeout-as-promise": "1.0.0",
"ts-node": "10.0.0",
"twemoji-parser": "13.1.0", "twemoji-parser": "13.1.0",
"typescript": "4.5.5",
"uuid": "8.3.2", "uuid": "8.3.2",
"ws": "7.5.2", "ws": "7.5.2",
"zod": "3.11.6" "zod": "3.11.6"
}, },
"devDependencies": { "devDependencies": {
"@koa/router": "9.4.0", "@koa/router": "9.4.0",
"@swc/cli": "0.1.59",
"@swc/core": "1.3.30",
"@types/accurate-interval": "1.0.0",
"@types/chalk": "2.2.0",
"@types/humanize-duration": "3.27.1",
"@types/jest": "26.0.23", "@types/jest": "26.0.23",
"@types/koa": "2.13.1", "@types/koa": "2.13.1",
"@types/koa__router": "8.0.4", "@types/koa__router": "8.0.4",
"@types/lokijs": "1.5.4",
"@types/moji": "0.5.0",
"@types/node": "16.0.1",
"@types/promise-retry": "1.1.3",
"@types/random-seed": "0.3.3",
"@types/request-promise-native": "1.0.18",
"@types/seedrandom": "2.4.28",
"@types/twemoji-parser": "13.1.1",
"@types/uuid": "8.3.1",
"@types/websocket": "1.0.2", "@types/websocket": "1.0.2",
"cross-env": "7.0.3", "@types/ws": "7.4.6",
"jest": "26.6.3", "jest": "26.6.3",
"koa": "2.13.1",
"koa-json-body": "5.3.0",
"prettier": "2.5.1", "prettier": "2.5.1",
"ts-jest": "26.5.6", "ts-jest": "26.5.6",
"ts-node": "10.0.0",
"typescript": "4.5.5",
"websocket": "1.0.34" "websocket": "1.0.34"
}, },
"_moduleAliases": { "_moduleAliases": {

View File

@ -1,5 +1,6 @@
{ {
"compilerOptions": { "compilerOptions": {
"noEmit": true,
"noEmitOnError": true, "noEmitOnError": true,
"noImplicitAny": false, "noImplicitAny": false,
"noImplicitReturns": true, "noImplicitReturns": true,

4919
yarn.lock

File diff suppressed because it is too large Load Diff