From a1628f04a36aca21d675e99aa42867149c2108e7 Mon Sep 17 00:00:00 2001 From: jojo Date: Tue, 9 Dec 2025 22:29:43 +0100 Subject: [PATCH] =?UTF-8?q?=C3=BAprava=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/devcontainer.json | 5 +++- Dockerfile | 42 +++++++++------------------------ 2 files changed, 15 insertions(+), 32 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7ab48e4..01c0d0c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,6 @@ { "name": "Python Dev", + // !! nezabudni nastaviť aj verziu python pre aplikáciu "image": "docker.masara.eu/python:3.13-0.1-devcontainer", // "build": { // "dockerfile": "Dockerfile", @@ -13,7 +14,9 @@ "PIP_ROOT_USER_ACTION": "ignore" }, "remoteEnv": { - "DOCKER_BUILDKIT": "1" + "DOCKER_BUILDKIT": "1", + // verzia python pre aplikáciu + "PYTHON_BASE": "3.13" }, "workspaceFolder": "/workspace", "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind", diff --git a/Dockerfile b/Dockerfile index b61933c..16e791f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,7 @@ # syntax=docker/dockerfile:1.6 -FROM python:3.11-slim + +ARG PYTHON_BASE=3.13 +FROM python:${PYTHON_BASE}-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ @@ -8,45 +10,23 @@ ENV PYTHONDONTWRITEBYTECODE=1 \ PIP_INDEX_URL=https://dv.masara.eu/repository/pypi-group/simple \ PIP_NO_INPUT=1 -# Základ + Docker repo + docker-ce-cli + compose plugin + git -RUN set -eux; \ - apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - ca-certificates curl gnupg && \ - install -m 0755 -d /etc/apt/keyrings && \ - curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \ - chmod a+r /etc/apt/keyrings/docker.gpg && \ - echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \ - https://download.docker.com/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" \ - > /etc/apt/sources.list.d/docker.list && \ - apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - build-essential pkg-config \ - git \ - docker-ce-cli docker-compose-plugin docker-buildx-plugin \ - libatomic1 libstdc++6 libgcc-s1 \ - procps \ - && rm -rf /var/lib/apt/lists/* - -WORKDIR /workspace - -ARG APP_USER_ID=1000 -RUN useradd -u ${APP_USER_ID} -m appuser - WORKDIR /app +# Inštalácia závislostí COPY requirements.txt . RUN --mount=type=cache,target=/root/.cache/pip \ pip install -r requirements.txt +# Kopírovanie zdrojov COPY app/ /app/ -# ak len adresár /app -RUN chown -R appuser:appuser /app -# príklad vytvorenia ďalľieho adresára pre aplikáciu a zmena vlastníctva naraz aj pre /app -# RUN mkdir -p /models && chown -R appuser:appuser /models /app + +# Vytvorenie ne-root usera +ARG APP_USER_ID=1000 +RUN useradd -u ${APP_USER_ID} -m appuser && \ + chown -R appuser:appuser /app USER appuser -# Príklad sprístupnenia a spustenia uvicorn +# Príklad spustenia # EXPOSE 8080 # CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]