From 05c329b5953a149d6f607c24f7ec59fb42e5a07d Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Thu, 28 May 2026 09:22:29 +0545 Subject: [PATCH] feat(src/djinit/creators): add Dockerfile and .dockerignore generation for new projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce automatic creation of Dockerfile and .dockerignore during project scaffolding, enabling container‑ready setups out of the box. * New Features - `create_dockerfile` method renders Dockerfile with configurable context (module name, database type, Tailwind usage). - `create_dockerignore` method generates a .dockerignore file to exclude unnecessary files from containers. * Enhancements - Added both methods to the setup pipeline in `SetupCreator` so they are executed automatically. - Context values are derived from project metadata, allowing customization per project. * Bug Fixes - None --- src/djinit/creators/files.py | 21 +++++++++++++++++++++ src/djinit/creators/setup.py | 2 ++ 2 files changed, 23 insertions(+) diff --git a/src/djinit/creators/files.py b/src/djinit/creators/files.py index 2500cfb..1d7d2e6 100644 --- a/src/djinit/creators/files.py +++ b/src/djinit/creators/files.py @@ -131,6 +131,27 @@ class FileCreator(BaseService): filepath, template, context, f"Created {prefix}/{filename}", should_format=True ) + def create_dockerfile(self) -> None: + context = { + "module_name": self.module_name, + "database_type": self.metadata.get("database_type", "postgresql"), + "use_tailwind": self.metadata.get("use_tailwind", False), + } + self._render_and_create_file( + "Dockerfile", + "project/Dockerfile-tpl", + context, + "Created Dockerfile for containerization", + ) + + def create_dockerignore(self) -> None: + self._render_and_create_file( + ".dockerignore", + "project/dockerignore-tpl", + {}, + "Created .dockerignore file", + ) + def create_gitignore(self) -> None: self._render_and_create_file(".gitignore", "project/gitignore-tpl", {}, "Created .gitignore file") diff --git a/src/djinit/creators/setup.py b/src/djinit/creators/setup.py index ac44f53..a946f8a 100644 --- a/src/djinit/creators/setup.py +++ b/src/djinit/creators/setup.py @@ -104,6 +104,8 @@ class SetupCreator: self.file_creator.create_readme, self.file_creator.create_env_file, self.file_creator.create_djinit_config, + self.file_creator.create_dockerfile, + self.file_creator.create_dockerignore, lambda: self.file_creator.create_pyproject(self.metadata), ]