[fix] Dockerで動くようにした

ついでにtscをswcに変更した
This commit is contained in:
CaffeinePower 2023-01-30 18:17:38 +09:00
parent 7a8b11c9f1
commit 526d09062b
6 changed files with 91 additions and 4961 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,25 +1,55 @@
FROM node:lts-bullseye
FROM node:16 AS module
RUN apt-get update && apt-get install -y tini
WORKDIR /app
ARG enable_mecab=1
RUN apt-get update
RUN apt-get install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
RUN if [ $enable_mecab -ne 0 ]; then apt-get update \
&& apt-get install mecab libmecab-dev mecab-ipadic-utf8 make curl xz-utils file sudo --no-install-recommends -y \
&& apt-get clean \
&& rm -rf /var/lib/apt-get/lists/* \
&& cd /opt \
&& git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git \
&& cd /opt/mecab-ipadic-neologd \
&& ./bin/install-mecab-ipadic-neologd -n -y \
&& rm -rf /opt/mecab-ipadic-neologd \
&& echo "dicdir = /usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/" > /etc/mecabrc \
&& apt-get purge git make curl xz-utils file -y; fi
COPY package.json .
COPY . /nullcatchan
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 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
RUN apt-get update && \
apt-get install -y mecab
WORKDIR /nullcatchan
RUN npm install && npm run build
ENTRYPOINT ["/usr/bin/tini", "--"]
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,11 +1,7 @@
version: '3'
services:
app:
build:
dockerfile: Dockerfile_production
context: .
args:
- enable_mecab=1
build: .
volumes:
- './config.json:/nullcatchan/config.json:ro'
- './font.ttf:/nullcatchan/font.ttf:ro'

View File

@ -7,30 +7,20 @@
"dev": "cross-env NODE_ENV=development node ./built",
"start": "cross-env NODE_ENV=production node ./built",
"lint": "prettier --write ./src/",
"build": "tsc",
"build": "swc src -d built",
"test": "jest"
},
"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",
"autobind-decorator": "2.4.0",
"canvas": "2.8.0",
"chalk": "4.1.1",
"cjp": "1.2.3",
"cross-env": "7.0.3",
"gomamayo-js": "0.2.1",
"humanize-duration": "3.27.1",
"koa": "2.13.1",
"koa-json-body": "5.3.0",
"lokijs": "1.5.12",
"memory-streams": "0.1.3",
"misskey-reversi": "0.0.5",
@ -44,25 +34,37 @@
"request-promise-native": "1.0.9",
"seedrandom": "3.0.5",
"timeout-as-promise": "1.0.0",
"ts-node": "10.0.0",
"twemoji-parser": "13.1.0",
"typescript": "4.5.5",
"uuid": "8.3.2",
"ws": "7.5.2",
"zod": "3.11.6"
},
"devDependencies": {
"@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/koa": "2.13.1",
"@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",
"cross-env": "7.0.3",
"@types/ws": "7.4.6",
"jest": "26.6.3",
"koa": "2.13.1",
"koa-json-body": "5.3.0",
"prettier": "2.5.1",
"ts-jest": "26.5.6",
"ts-node": "10.0.0",
"typescript": "4.5.5",
"websocket": "1.0.34"
},
"_moduleAliases": {

View File

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

4919
yarn.lock

File diff suppressed because it is too large Load Diff