Day 25: Complete Jenkins CI/CD Project - Continued with Documentation


Software Requirements Specification (SRS)

1. Introduction

1.1 Purpose

The purpose of this document is to provide a detailed overview of the requirements for the Dockerized version of the 2048 Game.

1.2 Scope

This project aims to containerize the 2048 Game using Docker to simplify deployment and ensure consistency across different environments.

2. System Description

2.1 Overview

The Dockerized 2048 Game project involves packaging the 2048 Game application and its dependencies into a Docker container. This containerized application can then be deployed and run on any system with Docker installed.

2.2 Features

  • Containerization of the 2048 Game using Docker

  • Easy deployment and scalability

  • Consistency across different environments

3. Functional Requirements

3.1 Dockerfile

  • Use a base Nginx image

  • Set the working directory inside the container

  • Copy all game files into the container

  • Expose port 8000 for accessing the game

  • Start the Nginx web server

3.2 Jenkins Configuration Script

  • Stop and remove the old Docker container if it exists

  • Build the Docker image

  • Run the Docker container

  • Map port 8000 on the host machine to port 80 inside the container

4. Non-Functional Requirements

4.1 Performance

  • The Dockerized 2048 Game should have minimal overhead compared to running the game directly.

  • The Docker image should be lightweight and efficient.

4.2 Reliability

  • The Dockerized application should be reliable and stable across different environments.

4.3 Portability

  • The Dockerized application should be portable and runnable on any system with Docker installed.

Full Documentation

Overview

The Dockerized 2048 Game project aims to containerize the popular 2048 Game using Docker. This allows for easy deployment, scalability, and consistency across different environments.

System Components

Dockerfile

The Dockerfile defines the steps for building the Docker image. It uses a base Nginx image, sets the working directory inside the container, copies all game files into the container, exposes port 8000 for accessing the game, and starts the Nginx web server.

Jenkins Configuration Script

The Jenkins configuration script is used to automate the deployment of the Dockerized 2048 Game. It stops and removes the old Docker container if it exists, builds the Docker image, runs the Docker container, and maps port 8000 on the host machine to port 80 inside the container.

Deployment Steps

  1. Clone the repository containing the Dockerized 2048 Game.

  2. Navigate to the cloned directory.

  3. Build the Docker image using the provided Dockerfile.

  4. Run the Docker container using the provided Jenkins configuration script.

  5. Access the game in a web browser by visiting http://localhost:8080.

Additional Information

  • The Dockerized 2048 Game uses Nginx as the web server.

  • Port 8080 on the host machine is mapped to port 80 inside the Docker container for accessing the game.

  • Users can customize the game or server configuration by modifying the files in the repository and rebuilding the Docker image.


This concludes the Software Requirements Specification (SRS) and full documentation for the Dockerized 2048 Game project. If you have any further questions or need additional information, please feel free to ask.

10
Subscribe to my newsletter

Read articles from Yashraj Singh Sisodiya directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Yashraj Singh Sisodiya
Yashraj Singh Sisodiya

I am Yashraj Singh Sisodiya, a 3rd Year CSE student at SVVV, born and raised in Shujalpur. Currently residing in Indore, I'm passionate about pursuing a career in DevOps engineering. My tech journey began with an internship at Infobyte, honing my skills as an Android Developer intern. Alongside my academic pursuits, I actively participate in co-curriculars, holding roles as Technical Lead at Abhyudaya and Cloud Lead at GDSC SVVV, while also serving as an MLSA of my college. I have a keen interest in Cloud Computing, demonstrated through projects such as User management and Backup using shell scripting Linux, Dockerizing applications, CI/CD with Jenkins, and deploying a 3-tier application on AWS. Always eager to learn, I'm committed to expanding my knowledge and skills in the ever-evolving tech landscape.