{"id":22919310,"url":"https://github.com/thetoriqul/single-container-app","last_synced_at":"2026-04-29T18:31:51.793Z","repository":{"id":267803457,"uuid":"902384542","full_name":"TheToriqul/single-container-app","owner":"TheToriqul","description":"This project demonstrates my expertise in creating efficient, secure, and production-ready containerized applications. Through this hands-on development, I've mastered crucial DevOps practices and modern containerization techniques that ensure seamless deployment across any environment.","archived":false,"fork":false,"pushed_at":"2024-12-12T15:39:39.000Z","size":190,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-07T08:27:32.564Z","etag":null,"topics":["containerized","containerized-application","docker","docker-container","dockerization"],"latest_commit_sha":null,"homepage":"https://thetoriqul.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TheToriqul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-12T13:13:23.000Z","updated_at":"2024-12-12T15:39:44.000Z","dependencies_parsed_at":"2024-12-12T15:20:18.467Z","dependency_job_id":"96253265-8046-4b0f-9ebc-5d49d0fd8640","html_url":"https://github.com/TheToriqul/single-container-app","commit_stats":null,"previous_names":["thetoriqul/single-container-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheToriqul%2Fsingle-container-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheToriqul%2Fsingle-container-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheToriqul%2Fsingle-container-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheToriqul%2Fsingle-container-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheToriqul","download_url":"https://codeload.github.com/TheToriqul/single-container-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246645459,"owners_count":20810958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["containerized","containerized-application","docker","docker-container","dockerization"],"created_at":"2024-12-14T07:11:34.366Z","updated_at":"2026-04-29T18:31:51.751Z","avatar_url":"https://github.com/TheToriqul.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 ContainerCraft: Mastering Node.js Containerization\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/docker-library/docs/01c12653951b2fe592c1f93a13b4e289ada0e3a1/node/logo.png\" alt=\"Node.js + Docker\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![GitHub Repository](https://img.shields.io/badge/GitHub-single--container--app-blue?style=for-the-badge\u0026logo=github)](https://github.com/TheToriqul/single-container-app)\n[![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)](https://nodejs.org/)\n[![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)](https://www.docker.com/)\n[![Alpine Linux](https://img.shields.io/badge/Alpine_Linux-0D597F?style=for-the-badge\u0026logo=alpine-linux\u0026logoColor=white)](https://www.alpinelinux.org/)\n[![DevOps](https://img.shields.io/badge/DevOps-FF6C37?style=for-the-badge\u0026logo=devops\u0026logoColor=white)](https://devops.com/)\n\n\u003c/div\u003e\n\n## 📋 Project Overview\n\nContainerCraft is my advanced implementation showcasing the art of containerizing Node.js applications using Docker. This project demonstrates my expertise in creating efficient, secure, and production-ready containerized applications. Through this hands-on development, I've mastered crucial DevOps practices and modern containerization techniques that ensure seamless deployment across any environment.\n\n## 🎯 Key Objectives\n\n- Master production-grade containerization techniques for Node.js applications\n- Implement advanced Docker optimization strategies including layer caching and multi-stage builds\n- Establish robust security protocols through proper container configuration\n- Design efficient networking and port mapping solutions\n- Create scalable and maintainable container management workflows\n\n## 🏗️ Project Architecture\nThe project implements a containerized Node.js HTTP server using Docker, where the application runs inside a container built on the lightweight node:14-alpine base image. The container exposes port 8080 internally which is mapped to port 80 on the host system, while the Docker image layers efficiently organize the base image, application code (app.js), and required Node.js dependencies for consistent deployment across any environment.\n\n\u003cfigure \u003e\n  \u003cp align=\"center\"\u003e\n      \u003cimg src=\"./architecture.png\" alt=\"Containerized Node.js HTTP server with Alpine Linux base image, showcasing Docker container layers, port mapping (8080:80), and Docker Hub integration for image distribution\" /\u003e\n      \u003cp align=\"center\"\u003eContainerCraft: Docker Container Architecture and Workflow\u003c/p\u003e \n  \u003c/p\u003e\n\u003c/figure\u003e\n\n## 💻 Technical Stack\n\n\u003cdiv align=\"left\"\u003e\n\n| Category | Technology |\n|----------|------------|\n| Runtime Environment | Node.js on Alpine Linux |\n| Containerization | Docker Engine |\n| Base Image | node:14-alpine |\n| Application | HTTP Server |\n| Port Configuration | Container: 8080, Host: 80 |\n| Security | Docker Security Scanning, Minimal Base Image |\n\n\u003c/div\u003e\n\n## 🚀 Getting Started\n\n\u003cdetails\u003e\n\u003csummary\u003e🐳 Prerequisites\u003c/summary\u003e\n\n- Docker Engine (latest version)\n- Node.js (for local development)\n- Git for version control\n- Docker Hub account (optional)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e⚙️ Installation\u003c/summary\u003e\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/TheToriqul/single-container-app.git\n   ```\n2. Navigate to the project directory:\n   ```bash\n   cd single-container-app\n   ```\n3. Build the Docker image:\n   ```bash\n   docker build -t my-node-app:1.0 .\n   ```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e🎮 Usage\u003c/summary\u003e\n\n1. Run the container:\n   ```bash\n   docker run -d --name my-node-app-container -p 80:8080 my-node-app:1.0\n   ```\n2. Access the application:\n   ```bash\n   curl http://localhost:80\n   ```\n\nFor detailed commands and operations, refer to the [reference-commands.md](reference-commands.md) file.\n\n\u003c/details\u003e\n\n## 💡 Key Learnings\n\n### Technical Mastery:\n\n1. Advanced Docker image optimization techniques\n2. Container layer management and caching strategies\n3. Security-first container configuration\n4. Efficient networking and port mapping\n5. Production deployment best practices\n\n### Professional Development:\n\n1. Modern DevOps methodologies\n2. Security-focused application packaging\n3. Efficient containerization workflows\n4. Container orchestration fundamentals\n5. Technical documentation expertise\n\n### 🔄 Future Enhancements\n\n\u003cdetails\u003e\n\u003csummary\u003eView Planned Improvements\u003c/summary\u003e\n\n1. Implement container health monitoring system\n2. Add automated CI/CD pipeline\n3. Integrate security scanning in build process\n4. Enhanced logging and monitoring\n5. Kubernetes deployment configuration\n6. Automated testing framework\n\n\u003c/details\u003e\n\n## 🙌 Contribution\n\nYour contributions are welcome! Please feel free to submit:\n- [Issues](https://github.com/TheToriqul/single-container-app/issues)\n- [Pull Requests](https://github.com/TheToriqul/single-container-app/pulls)\n- [Feature Suggestions](https://github.com/TheToriqul/single-container-app/issues/new)\n\n## 📧 Connect with Me\n\n\u003cdiv align=\"left\"\u003e\n\n| Platform | Link |\n|----------|------|\n| 📧 Email | toriqul.int@gmail.com |\n| 📱 Phone | +65 8936 7705, +8801765 939006 |\n| 🌐 LinkedIn | [@TheToriqul](https://www.linkedin.com/in/thetoriqul/) |\n| 🐙 GitHub | [@TheToriqul](https://github.com/TheToriqul) |\n| 🌍 Portfolio | [TheToriqul.com](https://thetoriqul.com) |\n\n\u003c/div\u003e\n\n## 👏 Acknowledgments\n\n- [Poridhi for providing comprehensive labs and inspiring this project](https://devops.poridhi.io/)\n- Docker community for extensive documentation and support\n- Node.js community for robust runtime environment\n- Alpine Linux team for secure, lightweight base images\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[⬆ Back to Top](#-containercraft-mastering-nodejs-containerization)**\n\nThank you for exploring ContainerCraft! Let's connect and discuss containerization and DevOps! 🚀\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthetoriqul%2Fsingle-container-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthetoriqul%2Fsingle-container-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthetoriqul%2Fsingle-container-app/lists"}