Files
backend/Dockerfile
Michel Wilhelm 64d0105d4a
All checks were successful
Creates a docker image for production / Build the docker image (push) Successful in 43s
Build / Code quality (push) Successful in 9m39s
Alterando Dockerfile
2025-02-05 10:11:51 -03:00

73 lines
1.7 KiB
Docker

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"]