{"id":31750476,"url":"https://github.com/ndevu12/docker_image","last_synced_at":"2026-02-16T07:01:50.647Z","repository":{"id":295369608,"uuid":"989729347","full_name":"Ndevu12/docker_image","owner":"Ndevu12","description":"docker image","archived":false,"fork":false,"pushed_at":"2025-05-26T05:12:16.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-27T00:39:11.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/Ndevu12.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,"zenodo":null}},"created_at":"2025-05-24T17:49:03.000Z","updated_at":"2025-06-13T17:15:27.000Z","dependencies_parsed_at":"2025-05-26T06:28:35.200Z","dependency_job_id":null,"html_url":"https://github.com/Ndevu12/docker_image","commit_stats":null,"previous_names":["ndevu12/my_first_docker_image","ndevu12/docker_image"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ndevu12/docker_image","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ndevu12%2Fdocker_image","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ndevu12%2Fdocker_image/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ndevu12%2Fdocker_image/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ndevu12%2Fdocker_image/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ndevu12","download_url":"https://codeload.github.com/Ndevu12/docker_image/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ndevu12%2Fdocker_image/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29502928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T05:57:17.024Z","status":"ssl_error","status_checked_at":"2026-02-16T05:56:49.929Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2025-10-09T15:52:14.669Z","updated_at":"2026-02-16T07:01:50.631Z","avatar_url":"https://github.com/Ndevu12.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🐳 Docker Learning Server\n\nA simple Node.js application designed for recalling and mastering Docker containerization concepts. This project includes a basic Express.js server with essential endpoints to demonstrate Docker fundamentals.\n\n## 📋 Features\n\n- **Simple Express.js server** with basic routes\n- **Health check endpoint** for container monitoring\n- **RESTful API** with in-memory data storage\n- **Docker configuration** for containerization learning\n- **Docker Compose** for easy container management\n- **Basic error handling** and logging\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- [Docker](https://www.docker.com/get-started) installed on your system\n- [Node.js](https://nodejs.org/) (for local development - optional)\n\n### Running with Docker\n\n1. **Build the Docker image:**\n   ```bash\n   docker build -t docker-learning-server .\n   ```\n\n2. **Run the container:**\n   ```bash\n   docker run -p 3000:3000 docker-learning-server\n   ```\n\n3. **Access the application:**\n   Open your browser and visit `http://localhost:3000`\n\n### Running with Docker Compose\n\n1. **Start the application:**\n   ```bash\n   docker-compose up -d\n   ```\n\n2. **Stop the application:**\n   ```bash\n   docker-compose down\n   ```\n\n### Local Development (Optional)\n\nIf you want to run without Docker for development:\n\n1. **Install dependencies:**\n   ```bash\n   npm install\n   ```\n\n2. **Start the development server:**\n   ```bash\n   npm run dev\n   ```\n\n## 📚 API Endpoints\n\n- `GET /` - Welcome message and API overview\n- `GET /health` - Health check endpoint\n- `GET /api/system` - System information\n- `GET /api/users` - Get all users\n- `POST /api/users` - Create a new user\n- `GET /api/todos` - Get all todos\n- `POST /api/todos` - Create a new todo\n\n## 🐳 Docker Learning Concepts\n\nThis project demonstrates:\n\n1. **Dockerfile** - How to containerize a Node.js application\n2. **Docker Compose** - How to manage container lifecycle\n3. **Port mapping** - Exposing container ports to host\n4. **Volume mounting** - For development with live reload\n5. **Environment variables** - Configuration management\n6. **Health checks** - Container monitoring\n\n## 🛠️ Available Scripts\n\n- `npm start` - Start the production server\n- `npm run dev` - Start with nodemon for development\n- `npm test` - Run tests\n- `docker:build` - Build Docker image\n- `docker:run` - Run Docker container\n- `compose:up` - Start with Docker Compose\n- `compose:down` - Stop Docker Compose services\n\n## 📁 Project Structure\n\n```\n├── src/\n│   ├── app.js              # Main application file\n│   ├── middleware/         # Express middleware\n│   └── routes/            # API routes\n├── config/\n│   └── app.json           # Application configuration\n├── public/\n│   └── index.html         # Static web interface\n├── Dockerfile             # Docker image configuration\n├── docker-compose.yml     # Multi-container setup\n└── package.json           # Node.js dependencies\n```\n\n## 🤝 Learning Resources\n\n- [Docker Documentation](https://docs.docker.com/)\n- [Docker Compose Documentation](https://docs.docker.com/compose/)\n- [Express.js Documentation](https://expressjs.com/)\n\n## 🛠 Docker Commands Cheat Sheet\n\n### Basic Commands\n```bash\n# Build image\ndocker build -t docker-learning-server .\n\n# Run container\ndocker run -p 3000:3000 docker-learning-server\n\n# Run container in background\ndocker run -d -p 3000:3000 --name my-learning-server docker-learning-server\n\n# View running containers\ndocker ps\n\n# Stop container\ndocker stop my-learning-server\n\n# Remove container\ndocker rm my-learning-server\n```\n\n### Docker Compose Commands\n```bash\n# Start services\ndocker-compose up -d\n\n# View logs\ndocker-compose logs -f\n\n# Stop services\ndocker-compose down\n\n# Rebuild and start\ndocker-compose up --build\n```\n\n## 📝 License\n\nMIT License - feel free to use this project for learning!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndevu12%2Fdocker_image","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndevu12%2Fdocker_image","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndevu12%2Fdocker_image/lists"}