Skip to content

Commit

Permalink
Merge pull request #3 from xshapira/optimize-dockerfiles
Browse files Browse the repository at this point in the history
Optimize Dockerfiles for smaller image size and better performance
  • Loading branch information
xshapira authored Jun 11, 2024
2 parents 25ff164 + 91466b1 commit 219bd6c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 18 deletions.
16 changes: 8 additions & 8 deletions docker/django/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.11-slim-bookworm
FROM python:3.12-slim-bookworm AS base

ARG APP_HOME=/usr/src/app
WORKDIR ${APP_HOME}
Expand All @@ -13,24 +13,24 @@ ENV PYTHONDONTWRITEBYTECODE 1 \
ENV PATH="$POETRY_HOME/bin:$PATH"

RUN apt update \
&& apt install -y curl git libpq-dev gcc libglu1 \
&& pip install --upgrade pip \
&& pip install psycopg psycopg-binary \
&& apt install -y --no-install-recommends curl git libpq-dev gcc libglu1 \
&& pip install --no-cache-dir --upgrade pip \
&& pip install --no-cache-dir psycopg psycopg-binary \
&& curl -sSL https://install.python-poetry.org | POETRY_HOME=/usr/local/poetry python3 - \
# cleaning up unused files
&& apt purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/*

COPY ./pyproject.toml ${APP_HOME}/

RUN poetry config virtualenvs.create false \
&& poetry install
&& poetry install --no-root --no-interaction --no-ansi

FROM base AS final

COPY ./docker/django/entrypoint /usr/src/app/docker/django/entrypoint
COPY ./docker/django/start_dev /usr/src/app/docker/django/start_dev

RUN ls -la /usr/src/app/docker/django/ \
&& chmod +x /usr/src/app/docker/django/start_dev \
RUN chmod +x /usr/src/app/docker/django/start_dev \
&& sed -i 's/\r$//g' /usr/src/app/docker/django/start_dev

COPY . ${APP_HOME}/
Expand Down
18 changes: 8 additions & 10 deletions docker/django/Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.11-slim-bookworm
FROM python:3.12-slim-bookworm AS base

ARG APP_HOME=/usr/src/app
WORKDIR ${APP_HOME}
Expand All @@ -13,26 +13,24 @@ ENV PYTHONDONTWRITEBYTECODE 1 \
ENV PATH="$POETRY_HOME/bin:$PATH"

RUN apt update \
&& apt install -y curl git libpq-dev gcc libglu1 libpq5 \
&& pip install --upgrade pip \
&& pip install psycopg psycopg-binary \
&& pip install "psycopg[c]" \
&& pip install gunicorn \
&& apt install -y --no-install-recommends curl git libpq-dev gcc libglu1 libpq5 \
&& pip install --no-cache-dir --upgrade pip \
&& pip install --no-cache-dir psycopg psycopg-binary "psycopg[c]" gunicorn \
&& curl -sSL https://install.python-poetry.org | POETRY_HOME=/usr/local/poetry python3 - \
# cleaning up unused files
&& apt purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -rf /var/lib/apt/lists/*

COPY ./pyproject.toml ${APP_HOME}/

RUN poetry config virtualenvs.create false \
&& poetry install
&& poetry install --no-root --no-interaction --no-ansi

FROM base AS final

COPY ./docker/django/entrypoint_prod /usr/src/app/docker/django/entrypoint_prod
COPY ./docker/django/start_production /usr/src/app/docker/django/start_production

RUN ls -la /usr/src/app/docker/django/ \
&& chmod +x /usr/src/app/docker/django/start_production \
RUN chmod +x /usr/src/app/docker/django/start_production \
&& sed -i 's/\r$//g' /usr/src/app/docker/django/start_production

COPY . ${APP_HOME}/
Expand Down

0 comments on commit 219bd6c

Please sign in to comment.