diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b12e8db --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +node_modules/ +dist/ +.github/ +Dockerfile +.dockerignore +README.md diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a6c39e4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ + +FROM node:22.11.0-slim@sha256:f035ba7ffee18f67200e2eb8018e0f13c954ec16338f264940f701997e3c12da AS builder + +WORKDIR /app + +COPY package*.json ./ + +RUN npm install --no-fund --no-audit + +COPY . . + +RUN npm run build + +FROM nginx:1.27.4-alpine@sha256:4ff102c5d78d254a6f0da062b3cf39eaf07f01eec0927fd21e219d0af8bc0591 + +COPY --from=builder /app/dist /usr/share/nginx/html + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d00d1ab --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,7 @@ + + +services: + wildcat-dashboard-ui: + build: . + ports: + - "8080:80" diff --git a/package.json b/package.json index 6556bae..c8ede07 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,9 @@ "test": "vitest", "lint": "eslint .", "preview": "vite preview", - "format": "prettier --write --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx,json,css,md}'" + "format": "prettier --write --no-error-on-unmatched-pattern 'src/**/*.{ts,tsx,json,css,md}'", + "docker:build": "docker build --tag wildcat-dashboard-ui .", + "docker:up": "docker compose up" }, "dependencies": { "@radix-ui/react-checkbox": "^1.1.4",