File size: 862 Bytes
c487c6c
5bb0a88
 
5605ba7
5bb0a88
 
5605ba7
5bb0a88
5605ba7
 
5bb0a88
c487c6c
0dd8a54
 
5605ba7
 
5bb0a88
c487c6c
5bb0a88
390bec8
a69ec7f
5605ba7
 
d001047
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
################ builder ################
FROM python:3.9-slim AS builder
WORKDIR /build

COPY requirements.txt .
RUN pip install --prefix=/install -r requirements.txt

COPY app.py .
RUN python -m compileall -b -f app.py          # → app.pyc
RUN tar -czf /build/app.tgz app.pyc            # bundle

################ 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; \
  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/app.tgz; \
  wait $pid"]