diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..75ad059 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +node_modules +npm-debug.log +dist +.git +.gitignore +.DS_Store +.env +.env.local +.env.* diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..43c7ecd --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +# syntax=docker/dockerfile:1 + +FROM node:20-alpine AS builder +WORKDIR /app + +COPY package*.json ./ +RUN npm install + +COPY . . +RUN npm run build + +FROM nginx:alpine +COPY --from=builder /app/dist /usr/share/nginx/html + +COPY <<'EOF' /etc/nginx/conf.d/default.conf +server { + listen 80; + server_name _; + + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri /index.html; + } + + location /assets/ { + expires 1y; + add_header Cache-Control "public, immutable"; + } +} +EOF + +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"]