From 4d07719066e5e042c4364651457223af0f483a47 Mon Sep 17 00:00:00 2001 From: UnEpicier Date: Sun, 18 Feb 2024 16:16:28 +0100 Subject: [PATCH] :sparkles: Introduce Dockerfile --- .dockerignore | 16 ++++++++++++++++ Dockerfile | 23 +++++++++++++++++++++++ README.md | 16 ++++++++++++++-- package-lock.json | 10 ---------- package.json | 1 - src/contexts/gameState.ts | 2 +- 6 files changed, 54 insertions(+), 14 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..0827c99 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,16 @@ +# Developement +.git +.prettierrc +.gitignore +README.md + +# Node +node_modules +npm-debug.log + +# Build +build + +# Docker +Dockerfile +.dockerignore \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4ce878c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +# Build stage +FROM node:lts-alpine as build + +WORKDIR /usr/src/app + +COPY package*.json ./ +RUN npm ci + +COPY . . + +RUN npm run build + +# Final stage +FROM node:lts-alpine as final +EXPOSE 3000 + +WORKDIR /usr/src/app + +COPY --from=build /usr/src/app/build . + +RUN npm i -g serve + +CMD serve \ No newline at end of file diff --git a/README.md b/README.md index e652071..5705e7c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,15 @@ -# Démineur +# Minesweeper -:) +## Docker + +- Build the image + + ```bash + docker build -t minesweeper . + ``` + +- Run the container + + ```bash + docker run --name minesweeper -dp 3000:3000 minesweeper + ``` diff --git a/package-lock.json b/package-lock.json index 9df6353..2b8cf3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "name": "demineur", "version": "0.0.0", "dependencies": { - "@types/localforage": "^0.0.34", "@types/node": "^20.11.16", "@types/react": "^18.2.53", "@types/react-dom": "^18.2.18", @@ -4159,15 +4158,6 @@ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, - "node_modules/@types/localforage": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/@types/localforage/-/localforage-0.0.34.tgz", - "integrity": "sha512-tJxahnjm9dEI1X+hQSC5f2BSd/coZaqbIl1m3TCl0q9SVuC52XcXfV0XmoCU1+PmjyucuVITwoTnN8OlTbEXXA==", - "deprecated": "This is a stub types definition for localforage (https://github.com/localForage/localForage). localforage provides its own type definitions, so you don't need @types/localforage installed!", - "dependencies": { - "localforage": "*" - } - }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", diff --git a/package.json b/package.json index a3d3c21..9dd1d25 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "eject": "react-scripts eject" }, "dependencies": { - "@types/localforage": "^0.0.34", "@types/node": "^20.11.16", "@types/react": "^18.2.53", "@types/react-dom": "^18.2.18", diff --git a/src/contexts/gameState.ts b/src/contexts/gameState.ts index 6f02a46..e43258a 100644 --- a/src/contexts/gameState.ts +++ b/src/contexts/gameState.ts @@ -14,7 +14,7 @@ import { atom } from 'recoil'; export const gameStateAtom = atom({ key: 'gameState', default: { - status: 'board', + status: 'settings', difficulty: 'beginner', gridSize: 12, bombs: 0,