# Taiga backend Dockerfile
# Builds the Taiga Django backend from source using Python 3.12
FROM python:3.12.13-bookworm
# Environment optimizations
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
# Install system dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
libffi-dev \
libssl-dev \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Working directory inside the image
WORKDIR /taiga-back
# Copy dependency manifest and install dependencies first (better cache)
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy the full source code
COPY . .
# Install the package in editable mode (as per blueprint)
RUN pip install --no-cache-dir -e .
# Build project artifacts (static files) and apply migrations
RUN python manage.py collectstatic --noinput
RUN python manage.py migrate --noinput
# Expose the default Taiga backend port
EXPOSE 8000
# Start the Django application using Gunicorn for production-like behavior
CMD ["gunicorn", "taiga.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "3"]
# Docker ignore file .git node_modules __pycache__ *.pyc .env .env.* *.sqlite3 *.log staticfiles media .taiga .taiga-back Dockerfile docker-compose*.yml
#0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: 1.20kB done #1 DONE 0.1s #2 [internal] load metadata for docker.io/library/python:3.12.13-bookworm #2 DONE 0.2s #3 [internal] load .dockerignore #3 transferring context: 195B done #3 DONE 0.1s #4 [internal] load build context #4 DONE 0.0s #5 [1/9] FROM docker.io/library/python:3.12.13-bookworm@sha256:b06e8541b66390dbe26e635448bfa51b6dd15cdc4d79c5dfd9cacdac8ec5ab91 #5 resolve docker.io/library/python:3.12.13-bookworm@sha256:b06e8541b66390dbe26e635448bfa51b6dd15cdc4d79c5dfd9cacdac8ec5ab91 0.1s done #5 CANCELED #4 [internal] load build context #4 transferring context: 407.31kB 0.0s done #4 DONE 0.2s #6 [2/9] RUN apt-get update && apt-get install -y --no-install-recommends build-essential libpq-dev libffi-dev libssl-dev ca-certificates && rm -rf /var/lib/apt/lists/* #6 CACHED #7 [3/9] WORKDIR /taiga-back #7 CACHED #8 [4/9] COPY requirements.txt . #8 ERROR: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::fhmgse8bxmezcg88iac3xeipq: "/requirements.txt": not found ------ > [4/9] COPY requirements.txt .: ------ Dockerfile:24 -------------------- 22 | 23 | # Copy dependency manifest and install dependencies first (better cache) 24 | >>> COPY requirements.txt . 25 | RUN pip install --no-cache-dir -r requirements.txt 26 | -------------------- ERROR: failed to build: failed to solve: failed to compute cache key: failed to calculate checksum of ref dm0crafjnw8l43ifl6uhde0ck::fhmgse8bxmezcg88iac3xeipq: "/requirements.txt": not found
# Taiga backend Dockerfile
# Builds the Taiga Django backend from source using Python 3.12
FROM python:3.12.13-bookworm
# Environment optimizations
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
# Install system dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
libffi-dev \
libssl-dev \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Working directory inside the image
WORKDIR /taiga-back
# Build tooling
RUN pip install --no-cache-dir -U pip setuptools wheel
# Copy the project source
COPY . .
# Install the project in editable mode if packaging is available
RUN pip install --no-cache-dir -e . || true
# Install Gunicorn for production serving
RUN pip install --no-cache-dir gunicorn
# Prepare entrypoint script (handle migrations and static files at startup)
COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
# Expose the default Taiga backend port
EXPOSE 8000
# Start the container with the entrypoint
ENTRYPOINT ["/docker-entrypoint.sh"]
Error: file not found: docker-entrypoint.sh
# Taiga backend Dockerfile
# Builds the Taiga Django backend from source using Python 3.12
FROM python:3.12.13-bookworm
# Environment optimizations
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
# Install system dependencies
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
build-essential \
libpq-dev \
libffi-dev \
libssl-dev \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# Working directory inside the image
WORKDIR /taiga-back
# Build tooling
RUN pip install --no-cache-dir -U pip setuptools wheel
# Copy the project source
COPY . .
# Install dependencies if a requirements.txt is present
RUN if [ -f requirements.txt ]; then pip install --no-cache-dir -r requirements.txt; fi
# Install the package in editable mode if packaging is available
RUN pip install --no-cache-dir -e . || true
# Install Gunicorn for production serving
RUN pip install --no-cache-dir gunicorn
# Expose the default Taiga backend port
EXPOSE 8000
# Start the Django application using Gunicorn for production-like behavior
CMD ["gunicorn", "taiga.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "3"]
Concerns: No HEALTHCHECK defined; runtime health checks would be beneficial for production readiness., Container runs as root by default; consider adding a non-root user for security., Database configuration and migrations are not addressed; real-world Taiga usage requires a database connection. Smoke [PASS]: python3 --version Smoke [PASS]: gunicorn --version Smoke [PASS]: test -d /taiga-back && ls -la /taiga-back | head -n 5