# syntax=docker/dockerfile:1 # Comments are provided throughout this file to help you get started. # If you need more help, visit the Dockerfile reference guide at # https://docs.docker.com/engine/reference/builder/ ARG PYTHON_VERSION=3.10.12 FROM python:${PYTHON_VERSION}-slim as base # Prevents Python from writing pyc files. ENV PYTHONDONTWRITEBYTECODE=1 # Keeps Python from buffering stdout and stderr to avoid situations where # the application crashes without emitting any logs due to buffering. ENV PYTHONUNBUFFERED=1 WORKDIR /app # Copy the source code into the container. COPY . . RUN apt-get update && apt-get install -y imagemagick && apt-get install -y wget && ls RUN wget https://files.ivanch.me/api/public/dl/iFuXSNhw/small-image.png && \ wget https://files.ivanch.me/api/public/dl/81Bkht5C/big-image.png && \ wget https://files.ivanch.me/api/public/dl/nAndfAjK/video.mp4 && \ rm -rf runtimes && \ mkdir -p ./static && \ mv small-image.png ./static && \ mv big-image.png ./static && \ mv video.mp4 ./static # Download dependencies as a separate step to take advantage of Docker's caching. # Leverage a cache mount to /root/.cache/pip to speed up subsequent builds. # Leverage a bind mount to requirements.txt to avoid having to copy them into # into this layer. RUN --mount=type=cache,target=/root/.cache/pip \ --mount=type=bind,source=requirements.txt,target=requirements.txt \ python -m pip install -r requirements.txt # Expose the port that the application listens on. EXPOSE 5000 # Run the application. CMD gunicorn 'app:app' --bind=0.0.0.0:5000