From 5fb131ff90c38d2d20e3265581b3e245766e5ba0 Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Thu, 23 Jul 2026 15:54:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 10 ++++++++++ .gitignore | 3 +++ Dockerfile | 23 +++++++++++++++++++++++ docker/nginx.conf | 20 ++++++++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker/nginx.conf diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..e7e004e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +.git +.gitignore +node_modules +dist +*.log +.env +.env.* +!.env.example +.vscode +.idea diff --git a/.gitignore b/.gitignore index a547bf3..b50664c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,9 @@ node_modules dist dist-ssr *.local +.env +.env.* +!.env.example # Editor directories and files .vscode/* diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ad6c521 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM node:24-alpine AS build + +WORKDIR /app + +COPY package*.json ./ +RUN npm ci + +COPY . . +RUN npm run build + +FROM node:24-alpine AS runtime + +RUN apk add --no-cache nginx + +COPY --from=build /app/dist /usr/share/nginx/html +COPY --from=build /app/server /app/server +COPY docker/nginx.conf /etc/nginx/http.d/default.conf + +ENV INQUIRY_API_PORT=5174 + +EXPOSE 80 + +CMD ["sh", "-c", "node /app/server/cms-server.mjs & exec nginx -g 'daemon off;'"] diff --git a/docker/nginx.conf b/docker/nginx.conf new file mode 100644 index 0000000..aa9f3ff --- /dev/null +++ b/docker/nginx.conf @@ -0,0 +1,20 @@ +server { + listen 80; + server_name _; + + root /usr/share/nginx/html; + index index.html; + + location /api/ { + proxy_pass http://127.0.0.1:5174; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location / { + try_files $uri $uri/ /index.html; + } +}