diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..33820b7d90d413847c748eeede94228c45c694ac
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,40 @@
+# Use the official Python image as the base image
+FROM python:3.11-slim
+
+
+# Install the patch utility
+RUN apt-get update && apt-get install -y patch
+
+
+# Set the working directory to /app
+WORKDIR /app
+
+
+# Copy the local requirements.txt file to the container
+COPY requirements.txt .
+
+
+# Install the Python dependencies
+RUN pip install -r requirements.txt
+
+# Copy the aiotieba-handle-exception-expose.patch file to the container
+COPY aiotieba-handle-exception-expose.patch .
+
+
+# Replace paths in the patch file to reflect the correct paths within the container
+RUN sed -i 's|venv/lib/python3.11/site-packages/|/usr/local/lib/python3.11/site-packages/|g' aiotieba-handle-exception-expose.patch
+
+
+# Apply the patch using the 'patch' command
+RUN patch -d/ -p0 < aiotieba-handle-exception-expose.patch
+
+
+# Expose port 8886
+EXPOSE 8886
+
+
+# Copy the local code to the container
+COPY . .
+
+# Run the Python script with Uvicorn, binding to all available network interfaces
+CMD ["gunicorn", "app:proxified", "--max-requests", "50", "--worker-class", "uvicorn.workers.UvicornWorker", "-b", "0.0.0.0:8886"]