mirror of
https://github.com/nullnyat/NullcatChan.git
synced 2025-04-28 22:17:17 +09:00
[fix] Dockerで動くようにした
ついでにtscをswcに変更した
This commit is contained in:
parent
7a8b11c9f1
commit
526d09062b
20
.swcrc
Normal file
20
.swcrc
Normal 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
|
||||
}
|
||||
}
|
66
Dockerfile
66
Dockerfile
@ -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"]
|
||||
|
@ -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'
|
||||
|
40
package.json
40
package.json
@ -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": {
|
||||
|
@ -1,5 +1,6 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"noEmit": true,
|
||||
"noEmitOnError": true,
|
||||
"noImplicitAny": false,
|
||||
"noImplicitReturns": true,
|
||||
|
Loading…
x
Reference in New Issue
Block a user