From fad9d6a183ca555feb6ed380cb2fa4f35cfd603c Mon Sep 17 00:00:00 2001 From: dm <> Date: Wed, 27 Aug 2025 10:53:10 +0300 Subject: [PATCH] doker use appuser + health check --- Dockerfile | 19 +++++++++++++------ app/api.py | 4 ++-- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index 23f952c..7964f02 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,15 +5,19 @@ RUN apt-get update \ && rm -rf /var/lib/apt/lists/* RUN curl -LsSf https://astral.sh/uv/install.sh | sh \ - && ln -s /root/.local/bin/uv /usr/local/bin/uv - -ENV XDG_CACHE_HOME=/root/.cache \ - UV_CACHE_DIR=/root/.cache/uv \ - UV_LINK_MODE=copy \ - PYTHONUNBUFFERED=1 + && cp /root/.local/bin/uv /usr/local/bin/uv WORKDIR /app +RUN useradd --create-home appuser \ + && chown -R appuser:appuser /app +USER appuser + +ENV XDG_CACHE_HOME=/home/appuser/.cache \ + UV_CACHE_DIR=/home/appuser/.cache/uv \ + UV_LINK_MODE=copy \ + PYTHONUNBUFFERED=1 + COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev @@ -21,3 +25,6 @@ COPY . . EXPOSE 8000 CMD ["uv", "run", "uvicorn", "app.api:app", "--host", "0.0.0.0", "--port", "8000"] + +HEALTHCHECK --interval=30s --timeout=10s \ + CMD curl -f http://localhost:8000/healthchecker diff --git a/app/api.py b/app/api.py index 3efb1a1..37e7e5b 100644 --- a/app/api.py +++ b/app/api.py @@ -88,5 +88,5 @@ async def get_list_of_files(api_key: str = Depends(verify_api_key)): ] @app.get("/healthchecker") -async def healthchecker(api_key: str = Depends(verify_api_key)): - return {"message": "Howdy :3"} +async def healthchecker(): + return {"message": "Howdy, all is fine :3"}