feat(src/djinit/templates/project): add Dockerfile and dockerignore templates

Introduce Dockerfile and dockerignore templates to scaffold Docker‑ready Django projects, providing conditional system‑level dependencies for databases and optional Tailwind support, and a comprehensive ignore list for generated projects.

- New Features
  - Dockerfile template with conditional apt packages for MySQL or PostgreSQL, and optional Tailwind installation.
  - dockerignore template covering Python bytecode, virtual environments, OS artifacts, Django static/media files, and common VCS files.

- Enhancements
  - Expand project scaffolding to include ready‑to‑use container configuration files.
This commit is contained in:
sankalp committed 2026-05-28 09:22:33 +05:45
1 parent 05c329b595
commit b6e1d39132
2 files changed
+70

No files matched your search

@@ -0,0 +1,44 @@
FROM python:3.13-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PIP_NO_CACHE_DIR=1
ENV PIP_DISABLE_PIP_VERSION_CHECK=1
WORKDIR /app
# @IF database_type == 'mysql'
RUN apt-get update && apt-get install -y --no-install-recommends \
default-libmysqlclient-dev \
build-essential \
&& rm -rf /var/lib/apt/lists/*
# @ELSE
RUN apt-get update && apt-get install -y --no-install-recommends \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
# @ENDIF
# @IF use_tailwind
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
&& rm -rf /var/lib/apt/lists/*
ENV NODE_VERSION=20
RUN curl -fsSL https://deb.nodesource.com/setup_${NODE_VERSION}.x | bash - \
&& apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/*
# @ENDIF
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# @IF use_tailwind
RUN python manage.py tailwind install
# @ENDIF
COPY . .
RUN python manage.py collectstatic --noinput || true
EXPOSE 8000
CMD ["gunicorn", "[[ module_name ]].wsgi:application", "--bind", "0.0.0.0:8000"]
@@ -0,0 +1,26 @@
__pycache__
*.pyc
*.pyo
*.pyd
.Python
*.so
.venv
venv
ENV
.env
.git
.gitignore
*.md
README*
LICENSE
.coverage
htmlcov
.pytest_cache
.mypy_cache
.ruff_cache
.DS_Store
node_modules
*.log
db.sqlite3
media
staticfiles