From c8cc685cfd3bb178f85b88912e352c3b0427adb9 Mon Sep 17 00:00:00 2001 From: YuevUwU <96368079+YuevUwU@users.noreply.github.com> Date: Thu, 26 Sep 2024 01:56:12 +0800 Subject: [PATCH] feat: enhance docker process by claude --- .docker/bot/Dockerfile | 23 ++++++++++++++++----- .docker/nginx/conf | 23 +++++++++++++++++---- .docker/web/Dockerfile | 42 ++++++++++++++++++--------------------- .env.example | 1 + docker-compose.yaml | 45 ++++++++++++++++++++++++------------------ 5 files changed, 83 insertions(+), 51 deletions(-) diff --git a/.docker/bot/Dockerfile b/.docker/bot/Dockerfile index aaeb211..80b5efe 100644 --- a/.docker/bot/Dockerfile +++ b/.docker/bot/Dockerfile @@ -1,9 +1,22 @@ # syntax=docker/dockerfile:1.4 -FROM --platform=$BUILDPLATFORM python:3.11-alpine AS builder +FROM python:3.11-slim-bullseye AS builder -WORKDIR /code -COPY ../.. . -RUN --mount=type=cache,target=/root/.cache/pip \ -pip3 install -r requirements.txt +WORKDIR /app + +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + && rm -rf /var/lib/apt/lists/* + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +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 . . CMD ["python3", "main.py"] diff --git a/.docker/nginx/conf b/.docker/nginx/conf index bdd23b0..5431df4 100755 --- a/.docker/nginx/conf +++ b/.docker/nginx/conf @@ -1,13 +1,28 @@ +# server { +# listen 80; +# server_name localhost; +# return 301 https://$server_name$request_uri; +# } + server { - listen 80; - server_name localhost; + listen 80; + server_name localhost; + # listen 443 ssl http2; + # server_name localhos + # ssl_certificate /etc/nginx/ssl/fullchain.pem; + # ssl_certificate_key /etc/nginx/ssl/privkey.pem; + # ssl_protocols TLSv1.2 TLSv1.3; + # ssl_prefer_server_ciphers on; + # ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; location / { - proxy_pass http://web:5000; + proxy_pass http://web:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } -} + # access_log /var/log/nginx/access.log; + # error_log /var/log/nginx/error.log; +} \ No newline at end of file diff --git a/.docker/web/Dockerfile b/.docker/web/Dockerfile index b27c811..3fce734 100755 --- a/.docker/web/Dockerfile +++ b/.docker/web/Dockerfile @@ -1,33 +1,29 @@ # syntax=docker/dockerfile:1.4 -FROM --platform=$BUILDPLATFORM python:3.11-alpine AS builder +FROM python:3.11-slim-bullseye AS builder -WORKDIR /code -COPY ../.. . -RUN --mount=type=cache,target=/root/.cache/pip \ - pip3 install -r requirements.txt +WORKDIR /app -ENV FLASK_APP app.py -ENV FLASK_ENV development -ENV FLASK_RUN_PORT 5000 -ENV FLASK_RUN_HOST 0.0.0.0 +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + && rm -rf /var/lib/apt/lists/* -EXPOSE 5000 +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +FROM python:3.11-slim-bullseye AS production -CMD ["flask", "run"] +WORKDIR /app -FROM builder AS dev-envs +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 -RUN <