{"id":27944997,"url":"https://github.com/kristiyan-velkov/frontend-prod-dockerfiles","last_synced_at":"2025-09-01T21:41:31.483Z","repository":{"id":278894884,"uuid":"937104413","full_name":"kristiyan-velkov/frontend-prod-dockerfiles","owner":"kristiyan-velkov","description":"Production-ready Dockerfiles for React.js, Angular, Vue.js, and Next.js. Optimized for performance, security, and minimal image size. ","archived":false,"fork":false,"pushed_at":"2025-03-03T18:45:42.000Z","size":2182,"stargazers_count":24,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T12:55:26.452Z","etag":null,"topics":["angular","devops","docker","dockerfile","front-end","frontend","frontend-docker","kristiyan-velkov","multistage-build","nextjs","optimized-docker","production","reactjs","secure-dockerfile","vuejs","web-development"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/in/kristiyan-velkov-763130b3/","language":"TypeScript","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/kristiyan-velkov.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":"2025-02-22T10:50:13.000Z","updated_at":"2025-05-06T17:49:12.000Z","dependencies_parsed_at":"2025-02-22T13:34:30.487Z","dependency_job_id":null,"html_url":"https://github.com/kristiyan-velkov/frontend-prod-dockerfiles","commit_stats":null,"previous_names":["kristiyan-velkov/frontend-dockerfiles","kristiyan-velkov/frontend-prod-dockerfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kristiyan-velkov%2Ffrontend-prod-dockerfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kristiyan-velkov%2Ffrontend-prod-dockerfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kristiyan-velkov%2Ffrontend-prod-dockerfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kristiyan-velkov%2Ffrontend-prod-dockerfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kristiyan-velkov","download_url":"https://codeload.github.com/kristiyan-velkov/frontend-prod-dockerfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252882791,"owners_count":21819155,"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":["angular","devops","docker","dockerfile","front-end","frontend","frontend-docker","kristiyan-velkov","multistage-build","nextjs","optimized-docker","production","reactjs","secure-dockerfile","vuejs","web-development"],"created_at":"2025-05-07T12:55:31.367Z","updated_at":"2025-05-07T12:55:31.987Z","avatar_url":"https://github.com/kristiyan-velkov.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/kristiyanvelkov","https://github.com/sponsors/kristiyan-velkov"],"categories":[],"sub_categories":[],"readme":"# Frontend Prod Dockerfiles\n\nProduction-ready **Dockerfiles** for **React.js, Angular, Vue.js, Next.js, Remix.js,Analog.js, Nuxt.js** applications.\n\nThese Dockerfiles are optimized for **performance, security, and minimal image size** to ensure efficient and scalable deployments.\n\n**Author**\n\n- [Kristiyan Velkov](https://www.linkedin.com/in/kristiyan-velkov-763130b3/)\n- [Blog - Medium](https://medium.com/@kristiyanvelkov)\n\n## Features\n\n- 🛠 **Optimized for Production** – Ensures smaller, faster, and more secure images.\n- 🔒 **Security Best Practices** – Uses non-root users and follows Docker security guidelines.\n- ⚡ **Multi-Stage Builds** – Reduces final image size by separating build and runtime environments.\n- 🚀 **Efficient Caching** – Utilizes layer caching to speed up builds.\n- 📦 **Minimal Base Images** – Uses lightweight images like `alpine` to reduce attack surface.\n\n## Supported Frameworks / Libraries\n\n- **React.js** - v19 ✅\n- **Next.js** v15 ✅\n- **Remix.js** - v2 ✅\n- **Angular** - v19 ✅\n- **Analog.js** - v1 ✅\n- **Vue.js** - v3 ✅\n- **Nuxt.js** - v3 ✅\n\n## Getting Started\n\nClone the repository and navigate to the desired framework directory:\n\n```sh\ngit clone https://github.com/kristiyan-velkov/frontend-dockerfiles.git\ncd frontend-dockerfiles/\u003cframework\u003e\n```\n\n---\n\n## Prerequisites\n\n- [Docker Desktop](https://www.docker.com/products/docker-desktop/) installed on your machine.\n- [Task](https://taskfile.dev/installation/) installed to use the Task commands.\n\n_or if you prefer Make_:\n\n- [Make](\u003chttps://en.wikipedia.org/wiki/Make_(software)\u003e) installed to use the Makefile commands.\n\n---\n\n## Usage\n\n| Taskfile Command       | Makefile Command       | Description                          |\n| ---------------------- | ---------------------- | ------------------------------------ |\n| `task`                 | `make`                 | Show available commands.             |\n| `task build`           | `make build`           | Build the Docker image.              |\n| `task run`             | `make run`             | Run the Docker container.            |\n| `task build-run`       | `make build-run`       | Build and run the Docker container.  |\n| `task stop`            | `make stop`            | Stop the Docker container.           |\n| `task restart`         | `make restart`         | Restart the Docker container.        |\n| `task logs`            | `make logs`            | Show logs from the Docker container. |\n| `task clean`           | `make clean`           | Remove Docker image and container.   |\n| `task clean-container` | `make clean-container` | Remove only the Docker container.    |\n| `task clean-image`     | `make clean-image`     | Remove only the Docker image.        |\n\n---\n\n### Environment Variables\n\nThe following variables are defined in the `Taskfile` and `Makefile` and can be customized if needed:\n\n| Variable         | Description                                                                          |\n| ---------------- | ------------------------------------------------------------------------------------ |\n| `IMAGE_NAME`     | The name of the Docker image.                                                        |\n| `CONTAINER_NAME` | The name of the Docker container.                                                    |\n| `HOST_PORT`      | The port on the host machine that the container will map to.                         |\n| `CONTAINER_PORT` | The port inside the Docker container where Nginx serves the application.             |\n| `DOCKERFILE`     | The Dockerfile to use.                                                               |\n| `NODE_VERSION`   | The version of Node.js used in the base image. Can be updated for easier migrations. |\n| `NGINX_VERSION`  | The version of Nginx used in the export configuration.                               |\n\n---\n\n### 📌 Contribution\n\nContributions are always welcome, whether it's reporting issues, improving documentation, fixing bugs, or adding new features. This project is for everyone! 💙\nAnd yes, it's open-source! 🎉\n\n---\n\n### ☕ Support My Work\n\nIf you find my work helpful and would like to support me, consider donating via:\n\n- [Revolut](https://revolut.me/kristiyanvelkov)\n- [Buy Me a Coffee](https://www.buymeacoffee.com/kristiyanvelkov)\n- [GitHub Sponsors](https://github.com/sponsors/kristiyan-velkov)\n\nYour support helps me continue creating valuable content for the community. Thank you! 🚀\n\n---\n\n### 📬 Contact me\n\nIf you’d like to connect, feel free to reach out via:\n\n- [LinkedIn](https://www.linkedin.com/in/kristiyan-velkov-763130b3/)\n- [Medium](https://medium.com/@kristiyanvelkov)\n- [Discord](https://discord.gg/dcdYZfsd)\n\nLooking forward to chatting with you! 🚀\n\n---\n\n### License\n\nThis project is licensed under the MIT License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkristiyan-velkov%2Ffrontend-prod-dockerfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkristiyan-velkov%2Ffrontend-prod-dockerfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkristiyan-velkov%2Ffrontend-prod-dockerfiles/lists"}