summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
authoryyamashita <yyamashita@mosquit.one>2026-05-08 23:46:46 +0900
committeryyamashita <yyamashita@mosquit.one>2026-05-08 23:46:46 +0900
commit859e6d8ed530daac1180c7b03182d9389be084dc (patch)
tree98c6596fefade6a7b06088e7b32ce8bb5e83f2f7 /Dockerfile
parent7682cdb089d606b6ef2c091a545878007e8fe2d6 (diff)
Add Dockerfile and server-setup.sh for git push auto-deploy
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile27
1 files changed, 27 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..45c4813
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,27 @@
+# syntax=docker/dockerfile:1
+
+FROM node:20-alpine AS deps
+WORKDIR /app
+COPY package.json package-lock.json ./
+RUN --mount=type=cache,target=/root/.npm \
+ npm ci
+
+FROM node:20-alpine AS build
+WORKDIR /app
+COPY --from=deps /app/node_modules ./node_modules
+COPY . .
+RUN npm run build
+
+FROM node:20-alpine AS prod-deps
+WORKDIR /app
+COPY package.json package-lock.json ./
+RUN --mount=type=cache,target=/root/.npm \
+ npm ci --omit=dev
+
+FROM node:20-alpine AS app
+WORKDIR /app
+COPY --from=prod-deps /app/node_modules ./node_modules
+COPY --from=build /app/build ./build
+RUN mkdir -p /app/data
+EXPOSE 3000
+CMD ["npm", "start"]