diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 56491ec..9a0260a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,41 @@ -FROM node:18 as builder +# syntax=docker/dockerfile:1 +FROM node:22 AS frontend-builder +# Workingdir +WORKDIR /frontend + +# Copy files +COPY frontend/src/ src/ +COPY frontend/package.json . +COPY frontend/index.html . +COPY frontend/tsconfig.json . +COPY frontend/vite.config.js . + +# Install libs +RUN yarn install +# Build to dist/ +RUN yarn build + + +FROM node:22 AS backend-builder + +# Workingdir WORKDIR /app -COPY package.json /app -RUN yarn +COPY package.json . +RUN yarn install + +COPY tsconfig.json . +COPY src/ src/ + +# Build to dist/ +RUN yarn run build +# Final stage +FROM node:22 +COPY --from=frontend-builder /frontend/dist/ /app/frontend/dist +COPY --from=backend-builder /app/dist /app/dist +COPY package.json . + +CMD ["yarn", "run", "start"] diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1 @@ +node_modules diff --git a/frontend/index.html b/frontend/index.html index 0e19512..7744031 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -8,6 +8,6 @@
- + diff --git a/frontend/package.json b/frontend/package.json index a979d18..7072493 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -16,7 +16,10 @@ "axios": "^1.8.4", "react": "^19.1.0", "react-dom": "^19.1.0", - "react-router-dom": "^7.5.0" + "react-router-dom": "^7.5.0", + "ts-node": "^10.9.2", + "typescript": "^5.8.3", + "vite": "^6.2.6" }, "devDependencies": { "@types/axios": "^0.14.4", @@ -25,9 +28,7 @@ "@types/react-router-dom": "^5.3.3", "@vitejs/plugin-react": "^4.4.0", "prettier": "^3.5.3", - "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "vite": "^6.2.6", + "webpack": "^5.99.5", "webpack-cli": "^6.0.1" } diff --git a/package.json b/package.json index e1e7f30..d22ea4e 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "start": "node dist/server.js", "dev": "nodemon --exec ts-node src/server.ts", "build": "tsc", + "build:all": "npm run build && cd frontend && npm run build", "format": "prettier --write \"src/**/*.{ts,js,json}\"", "format:check": "prettier --check \"src/**/*.{ts,js,json}\"", "format:all": "npm run format && cd frontend && npm run format"