zynthdev/loopyfeed
0
1# Builder stage2FROM python:3.9-alpine AS builder3WORKDIR /app4 5RUN apk add --no-cache --virtual .build-deps \6 gcc musl-dev libffi-dev \7 cairo-dev pango-dev gdk-pixbuf-dev giflib-dev8 9COPY requirements.txt .10RUN pip install --prefix=/install --no-cache-dir -r requirements.txt \11 && find /install -type d -name __pycache__ -exec rm -rf {} +12 13COPY . .14 15# Final stage16FROM python:3.9-alpine17WORKDIR /app18 19# Install runtime dependencies and fonts in one layer20RUN apk add --no-cache \21 cairo pango gdk-pixbuf giflib \22 fontconfig \23 ttf-freefont font-noto \24 # Temporary packages for font installation25 && apk add --no-cache --virtual .font-deps wget unzip \26 # Create directories27 && mkdir -p /usr/share/fonts/truetype/outfit \28 && mkdir -p /var/cache/fontconfig \29 && chmod 777 /var/cache/fontconfig \30 # Install Outfit font31 && wget -q -O /tmp/outfit.zip "https://github.com/Outfitio/Outfit-Fonts/archive/refs/heads/main.zip" \32 && unzip -q /tmp/outfit.zip -d /tmp \33 && find /tmp/Outfit-Fonts-main/fonts/ttf -name "*.ttf" -exec cp {} /usr/share/fonts/truetype/outfit/ \; \34 # Cleanup35 && rm -rf /tmp/outfit.zip /tmp/Outfit-Fonts-main \36 && apk del .font-deps \37 && fc-cache -fv \38 # Remove unnecessary docs39 && rm -rf /usr/share/man /usr/share/doc40 41COPY --from=builder /install /usr/local42COPY --from=builder /app /app43 44EXPOSE 786045CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]