diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..1175bf0
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+npm-debug.log
+log
+node_modules
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..562a2f8
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,24 @@
+FROM node:16
+
+RUN npm install -g pnpm@7.1.0 && \
+    npm config set registry https://registry.npm.taobao.org
+
+WORKDIR /usr/src/app
+
+COPY package.json pnpm-lock.yaml tsconfig*.json ./
+COPY ./packages/hapi-router/dist ./packages/hapi-router/dist
+COPY ./packages/hapi-router/package*.json ./packages/hapi-router/
+COPY ./public/js ./public/js
+COPY ./public/style ./public/style
+COPY ./source ./source
+COPY ./template ./template
+COPY ./types ./types
+COPY .env.production ./
+
+
+RUN pnpm install && \
+    pnpm build
+
+EXPOSE 3000
+
+CMD [ "node", "-r", "dotenv/config dist/main.js", "dotenv_config_path=.env.production" ]
\ No newline at end of file