FROM python:3.12.6-bullseye AS base ARG APP_USER \ APP_GROUP \ UID \ GID \ NEXUS_USERNAME \ NEXUS_PASSWORD ENV APP_USER=${APP_USER:-mines} \ APP_GROUP=${APP_GROUP:-mines} \ UID=${UID:-1000} \ GID=${GID:-1000} \ PYTHONFAULTHANDLER=1 \ PYTHONUNBUFFERED=1 \ PYTHONHASHSEED=random \ PYTHONDONTWRITEBYTECODE=1 \ LC_ALL=C.UTF-8 \ LANG=C.UTF-8 \ PIP_NO_CACHE_DIR=off \ PIP_DISABLE_PIP_VERSION_CHECK=on \ PIP_DEFAULT_TIMEOUT=100 \ UV_LINK_MODE=copy \ UV_PROJECT_ENVIRONMENT=/.venv \ VIRTUAL_ENV=/.venv \ PATH="/.venv/bin:$PATH" COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv WORKDIR /app COPY uv.lock pyproject.toml ./ # Dependências RUN echo "deb http://apt.postgresql.org/pub/repos/apt bullseye-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ apt-get update && \ apt-get install -y \ bash \ clang \ build-essential \ curl \ default-libmysqlclient-dev \ gnupg \ jq \ libc6 \ libffi-dev \ libjpeg-dev \ libmariadb-dev \ libpq-dev \ libpthread-stubs0-dev \ libxml2-dev \ libxslt-dev \ mariadb-client \ zlib1g-dev && \ apt-get install -y --no-install-recommends gcc && \ apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && \ apt-get clean -y && rm -rf /var/lib/apt/lists/* && \ uv sync --dev && \ uv cache clean && \ . $VIRTUAL_ENV/bin/activate # Copia o restante do código da aplicação COPY . /app RUN groupadd -r $APP_GROUP -g $GID && \ useradd -r -g $APP_GROUP -u $UID $APP_USER --shell /bin/bash --home /app USER $APP_USER CMD ["/app/commands/run-prod.sh"]