RegexApps / Dockerfile
itzraissc
oi
6af24f7
# ETAPA 1: Build do Frontend React
FROM node:20-slim AS frontend-builder
WORKDIR /app/frontend
COPY frontend/package*.json ./
RUN npm install
COPY frontend/ ./
RUN npm run build
# ETAPA 2: Ambiente PHANTOM Engine
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
# Dependências de Sistema
RUN apt-get update && apt-get install -y \
openjdk-17-jdk \
python3 \
python3-pip \
zipalign \
apksigner \
wget \
&& rm -rf /var/lib/apt/lists/*
# Apktool
RUN wget -q https://github.com/iBotPeaches/Apktool/releases/download/v2.9.3/apktool_2.9.3.jar -O /usr/local/bin/apktool.jar \
&& chmod +x /usr/local/bin/apktool.jar
# Usuário HF (UID 1000)
RUN useradd -m -u 1000 phantomuser
USER phantomuser
ENV HOME=/home/phantomuser \
PATH=/home/phantomuser/.local/bin:$PATH
WORKDIR $HOME/app
# Python deps
COPY --chown=phantomuser:phantomuser requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt
# Keystore
RUN keytool -genkey -v -keystore phantom.jks -alias phantom -keyalg RSA -keysize 2048 -validity 10000 \
-storepass phantom_secure -keypass phantom_secure -dname "CN=Phantom, OU=Project, O=Phantom, L=Cyberspace, ST=Global, C=XX"
# Código Backend
COPY --chown=phantomuser:phantomuser patcher.py .
COPY --chown=phantomuser:phantomuser main.py .
COPY --chown=phantomuser:phantomuser regex_config.json .
COPY --chown=phantomuser:phantomuser regex_anuncios.txt .
COPY --chown=phantomuser:phantomuser regex_parser.py .
# Frontend buildado
COPY --from=frontend-builder --chown=phantomuser:phantomuser /app/frontend/dist ./frontend/dist
# Pastas de trabalho
RUN mkdir -p uploads downloads phantom_workspace
EXPOSE 7860
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860", "--ws-ping-interval", "20", "--ws-ping-timeout", "30"]