From 70cdd2a4b69032d6bb87596a02f8d95b4cae9d8d Mon Sep 17 00:00:00 2001 From: YuevUwU <96368079+YuevUwU@users.noreply.github.com> Date: Mon, 16 Dec 2024 04:50:53 +0800 Subject: [PATCH] refactor(docker): shorten dockerfile --- .docker/bot/Dockerfile | 17 +++++++---------- .docker/web/Dockerfile | 37 ++++++++++++------------------------- 2 files changed, 19 insertions(+), 35 deletions(-) diff --git a/.docker/bot/Dockerfile b/.docker/bot/Dockerfile index e281de1..01dcc1e 100644 --- a/.docker/bot/Dockerfile +++ b/.docker/bot/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.11-slim-bullseye AS builder +FROM python:3.11-slim-bullseye AS base WORKDIR /app @@ -6,25 +6,22 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* +FROM base AS builder + COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt -FROM python:3.11-slim-bullseye AS development - -WORKDIR /app +FROM base AS development -COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY --from=builder /usr/local/bin /usr/local/bin +COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages CMD ["python3", "main.py"] +FROM base AS production -FROM python:3.11-slim-bullseye AS production - -WORKDIR /app - -COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY --from=builder /usr/local/bin /usr/local/bin +COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY . . diff --git a/.docker/web/Dockerfile b/.docker/web/Dockerfile index 325cf57..b7c444c 100755 --- a/.docker/web/Dockerfile +++ b/.docker/web/Dockerfile @@ -1,49 +1,36 @@ -FROM python:3.11-slim-bullseye AS builder +FROM python:3.11-slim-bullseye AS base WORKDIR /app - RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* +FROM base AS builder COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt - -FROM python:3.11-slim-bullseye AS development - +FROM base AS development WORKDIR /app - COPY --from=builder /usr/local/bin /usr/local/bin COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages - -ENV FLASK_APP=app.py -ENV FLASK_ENV=development -ENV FLASK_RUN_PORT=5000 -ENV FLASK_RUN_HOST=0.0.0.0 - +ENV FLASK_APP=app.py \ + FLASK_ENV=development \ + FLASK_RUN_PORT=5000 \ + FLASK_RUN_HOST=0.0.0.0 EXPOSE 5000 - CMD ["flask", "run"] - -FROM python:3.11-slim-bullseye AS gunicorn +FROM base AS gunicorn RUN pip install --no-cache-dir gunicorn - -FROM python:3.11-slim-bullseye AS production - -WORKDIR /app +FROM base AS production COPY --from=builder /usr/local/bin /usr/local/bin - -COPY --from=gunicorn /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages +COPY --from=gunicorn /usr/local/bin /usr/local/bin +COPY --from=gunicorn /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY . . - ENV GUNICORN_CMD_ARGS="--bind=0.0.0.0:5000 --workers=3" - EXPOSE 5000 - -CMD ["gunicorn", "app:app"] \ No newline at end of file +CMD ["gunicorn", "app:app"]