Spaces:
Running
Running
################ builder ################ | |
FROM python:3.9-slim AS builder | |
WORKDIR /build | |
COPY requirements.txt . | |
RUN pip install --prefix=/install -r requirements.txt | |
COPY app.py telegram_preview.py ./ | |
COPY templates/ templates/ | |
COPY static/ static/ | |
# compile both files | |
RUN python -m compileall -b -f app.py telegram_preview.py | |
# bundle everything needed | |
RUN tar -czf /build/app.tgz \ | |
app.pyc telegram_preview.pyc templates/ static/ | |
################ runtime ################ | |
FROM python:3.9-slim | |
WORKDIR /app | |
# bring in everything we need | |
COPY --from=builder /install /usr/local/ | |
COPY --from=builder /build/app.tgz /app/app.tgz | |
ENV PYTHONUNBUFFERED=1 | |
EXPOSE 7860 | |
# -------- no file, all inline -------- | |
ENTRYPOINT ["bash", "-c", "\ | |
set -euo pipefail; \ | |
mkdir -p /tmp/runner/templates; \ | |
cp /app/app.tgz /tmp/runner/; \ | |
tar -xzf /tmp/runner/app.tgz -C /tmp/runner; \ | |
python /tmp/runner/app.pyc & pid=$!; \ | |
sleep 2; \ | |
rm -f /tmp/runner/app.pyc /tmp/runner/telegram_preview.pyc /tmp/runner/app.tgz; \ | |
wait $pid"] | |