From 16cf8371d2affdeb693056faaf2f40e0e9947536 Mon Sep 17 00:00:00 2001 From: Stuart Bradley Date: Thu, 22 Feb 2024 13:01:53 +0000 Subject: [PATCH] FRS-6 Containerisation (#8) * Added Dockerfile * Final commit --- .github/workflows/e2e_test.yml | 2 +- .github/workflows/lint-and-test.yml | 2 +- Dockerfile | 71 ++++++++++++++++++ README.md | 70 ++++++++++++++++- .../functional_requirements_specification.md | 15 +++- .../images/catan-randomiser-js-examples.png | Bin 0 -> 92470 bytes .../product_requirements_document.md | 2 +- kubernetes/deployment.yaml | 19 +++++ kubernetes/service.yaml | 12 +++ next.config.mjs | 4 +- {src/app => public}/favicon.ico | Bin 11 files changed, 191 insertions(+), 6 deletions(-) create mode 100644 Dockerfile create mode 100644 documentation/images/catan-randomiser-js-examples.png create mode 100644 kubernetes/deployment.yaml create mode 100644 kubernetes/service.yaml rename {src/app => public}/favicon.ico (100%) diff --git a/.github/workflows/e2e_test.yml b/.github/workflows/e2e_test.yml index af511d0..bee3b28 100644 --- a/.github/workflows/e2e_test.yml +++ b/.github/workflows/e2e_test.yml @@ -25,7 +25,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: "npm" - name: Install Node.js dependencies diff --git a/.github/workflows/lint-and-test.yml b/.github/workflows/lint-and-test.yml index 3c29cab..32db1f1 100644 --- a/.github/workflows/lint-and-test.yml +++ b/.github/workflows/lint-and-test.yml @@ -33,7 +33,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 - name: Install Node.js dependencies run: npm ci diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..7e11113 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,71 @@ +# Copied from: https://github.com/vercel/next.js/blob/canary/examples/with-docker/Dockerfile + +FROM node:20-alpine AS base + +# Install dependencies only when needed +FROM base AS deps +# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. +RUN apk add --no-cache libc6-compat +WORKDIR /app + +# Install dependencies based on the preferred package manager +COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./ +RUN \ + if [ -f yarn.lock ]; then yarn --frozen-lockfile; \ + elif [ -f package-lock.json ]; then npm ci; \ + elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i --frozen-lockfile; \ + else echo "Lockfile not found." && exit 1; \ + fi + + +# Rebuild the source code only when needed +FROM base AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . + +# Next.js collects completely anonymous telemetry data about general usage. +# Learn more here: https://nextjs.org/telemetry +# Uncomment the following line in case you want to disable telemetry during the build. +# ENV NEXT_TELEMETRY_DISABLED 1 + +RUN \ + if [ -f yarn.lock ]; then yarn run build; \ + elif [ -f package-lock.json ]; then npm run build; \ + elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm run build; \ + else echo "Lockfile not found." && exit 1; \ + fi + +# Production image, copy all the files and run next +FROM base AS runner +WORKDIR /app + +ENV NODE_ENV production +# Uncomment the following line in case you want to disable telemetry during runtime. +# ENV NEXT_TELEMETRY_DISABLED 1 + +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs + +COPY --from=builder /app/public ./public + +# Set the correct permission for prerender cache +RUN mkdir .next +RUN chown nextjs:nodejs .next + +# Automatically leverage output traces to reduce image size +# https://nextjs.org/docs/advanced-features/output-file-tracing +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static + +USER nextjs + +EXPOSE 3000 + +ENV PORT 3000 +# set hostname to localhost +ENV HOSTNAME "0.0.0.0" + +# server.js is created by next build from the standalone output +# https://nextjs.org/docs/pages/api-reference/next-config-js/output +CMD ["node", "server.js"] \ No newline at end of file diff --git a/README.md b/README.md index f6d9b6a..434e508 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,29 @@ This repo contains a Next.js app that randomly generates Settlers of Catan board algorithms. The app is a modern version of the original Python Kivy repo which can be found [here](https://github.com/stuart-bradley/Catan-Randomiser). +## Features + +- Generates boards for the base game, as well as Seafarers and 6 player expansions. +- Allows the saving and sharing of boards via unique URLs. + - These URLs can also be tweaked to modify the boards. +- Seafarers boards include a number of different randomisation algorithms to generate different geographical features. +- Responsive design for mobile. + +## Screenshots + +![Screenshots of various types of board generation](documentation/images/catan-randomiser-js-examples.png) + +The colours correspond as follows: + +- Wheat: ![#ccb804](https://placehold.co/15x15/ccb804/ccb804.png) +- Sheep: ![#a5c13f](https://placehold.co/15x15/a5c13f/a5c13f.png) +- Rock: ![#7f7f7f](https://placehold.co/15x15/7f7f7f/7f7f7f.png) +- Tree: ![#3a7044](https://placehold.co/15x15/3a7044/3a7044.png) +- Brick: ![#c7490a](https://placehold.co/15x15/c7490a/c7490a.png) +- Desert: ![#fceac4](https://placehold.co/15x15/fceac4/fceac4.png) +- Gold: ![#ffcf00](https://placehold.co/15x15/ffcf00/ffcf00.png) +- Ocean: ![#3daace](https://placehold.co/15x15/3daace/3daace.png) + ## Documentation Full documentation can be found in the [documentation](documentation) folder. @@ -23,8 +46,53 @@ Full documentation can be found in the [documentation](documentation) folder. - [ESLint](https://eslint.org/) `8.56.*` - [Prettier](https://prettier.io/) `3.2.*` - [pre-commit](https://pre-commit.com/) `3.5.*` -- [vitest](https://vitest.dev/) `1.2.*` +- [Vitest](https://vitest.dev/) `1.2.*` - [Cypress](https://www.cypress.io/) `13.6.*` - [start-server-and-test](https://github.com/bahmutov/start-server-and-test) `2.0.3` - [testing-library/react](https://testing-library.com/docs/react-testing-library/intro) `14.2.*` - [testing-library/user-event](https://testing-library.com/docs/user-event/intro) `14.5.*` + +### Setup Guide + +#### Development + +Make sure you have [Node JS](https://nodejs.org/en), and [pre-commit](https://pre-commit.com/) installed on your system. + +To setup for development the only commands that need to be run are: + +```bash +npm install # Or Yarn etc, installs all required node dependencies. +pre-commit install # Installs hooks for ESLint and Prettier +``` + +For development, the following commands have been setup in `package.json`: + +```bash +npm run dev # Runs the development server +npm run build # Creates the Production build +npm run start # Runs the Production server (requires a build) +npm run test # Runs Vitest Unit and Component tests +npm run cypress:open # Runs the Cypress E2E suite in the GUI +npm run cypress:ci # Runs the Cypress E2E suite in headless mode. +``` + +#### Production + +For a Production setup, both a Dockerfile and Kubernetes (K8s) configuration have been included in the repo, and are +both ready for use with various cloud providers. + +The image used by K8s can be found on Docker Hub [here](https://hub.docker.com/repository/docker/stuartbradley/catan-randomiser-js). + +To test these locally the following commands can be used: + +```bash +# Docker - Requires Docker Engine +docker build -t catan-randomiser-js . +docker run -p 3000:3000 catan-randomiser-js +# K8s - Requires Minicube or similar +kubectl apply -f kubernetes/deployment.yaml +kubectl apply -f kubernetes/service.yaml +# Either following command: +minikube service catan-randomiser-js +kubectl expose deployment catan-randomiser-js --type=LoadBalancer --port=3000 +``` diff --git a/documentation/functional_requirements_specification.md b/documentation/functional_requirements_specification.md index 92fc53d..b001cbf 100644 --- a/documentation/functional_requirements_specification.md +++ b/documentation/functional_requirements_specification.md @@ -185,9 +185,22 @@ a single user path in the application: ### 6 Containerisation +The final step of application development should be to containerise the application so it can be deployed to +different machines and cloud providers without significant alternation. + #### 6.1 Docker -#### 6.2 Kubernetes +Next.js helpfully provides an [example Dockerfile](https://nextjs.org/docs/app/building-your-application/deploying#docker-image) +for building and deploying the application. + +The image on Docker Hub can be found [here](https://hub.docker.com/repository/docker/stuartbradley/catan-randomiser-js). + +#### 6.2 Kubernetes (K8s) + +While Next.js does not provide specific instructions for K8s, a basic setup only requires two configuration files: + +- A Deployment to create the Pods and Containers. +- A Service to create the load balancer. ## Appendix diff --git a/documentation/images/catan-randomiser-js-examples.png b/documentation/images/catan-randomiser-js-examples.png new file mode 100644 index 0000000000000000000000000000000000000000..3a454f649585834f99f5d48a69fd45227a340605 GIT binary patch literal 92470 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%0AWx(~VO$Qx?=LJ`B}`M? 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 NdRhjsI!*iNe*sM>T5tdW literal 0 HcmV?d00001 diff --git a/documentation/product_requirements_document.md b/documentation/product_requirements_document.md index 414a034..46e3303 100644 --- a/documentation/product_requirements_document.md +++ b/documentation/product_requirements_document.md @@ -1,7 +1,7 @@ # Product Requirements Document (PRD) This document outlines the high level requirements that this project needs to be considered feature complete for -Version 1. +MVP. ## Description diff --git a/kubernetes/deployment.yaml b/kubernetes/deployment.yaml new file mode 100644 index 0000000..327f2a6 --- /dev/null +++ b/kubernetes/deployment.yaml @@ -0,0 +1,19 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: catan-randomiser-js +spec: + replicas: 3 + selector: + matchLabels: + app: catan-randomiser-js + template: + metadata: + labels: + app: catan-randomiser-js + spec: + containers: + - name: catan-randomiser-js + image: stuartbradley/catan-randomiser-js:latest + ports: + - containerPort: 3000 diff --git a/kubernetes/service.yaml b/kubernetes/service.yaml new file mode 100644 index 0000000..167e1c5 --- /dev/null +++ b/kubernetes/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: catan-randomiser-js +spec: + selector: + app: catan-randomiser-js + ports: + - name: http + port: 80 + targetPort: 3000 + type: LoadBalancer diff --git a/next.config.mjs b/next.config.mjs index 4678774..8c8bab6 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,4 +1,6 @@ /** @type {import('next').NextConfig} */ -const nextConfig = {}; +const nextConfig = { + output: "standalone", +}; export default nextConfig; diff --git a/src/app/favicon.ico b/public/favicon.ico similarity index 100% rename from src/app/favicon.ico rename to public/favicon.ico