FROM registry.hub.docker.com/thetadev256/ucast-dev COPY . /build WORKDIR /build RUN poetry build -f wheel FROM registry.hub.docker.com/library/python:3.10 ARG TARGETPLATFORM COPY --from=0 /build/dist /install RUN pip install -- /install/*.whl gunicorn honcho && \ rm -rf ~/.cache/pip # ffmpeg static source (https://johnvansickle.com/ffmpeg/) RUN set -e; \ mkdir /build_ffmpeg; \ cd /build_ffmpeg; \ case "$TARGETPLATFORM" in \ "linux/amd64") ffmpeg_arch="amd64";; \ "linux/arm64") ffmpeg_arch="arm64";; \ "linux/arm/v7") ffmpeg_arch="armhf";; \ *) echo "TARGETPLATFORM $TARGETPLATFORM not found"; exit 1 ;;\ esac; \ wget "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-${ffmpeg_arch}-static.tar.xz"; \ wget "https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-${ffmpeg_arch}-static.tar.xz.md5"; \ md5sum -c "ffmpeg-release-${ffmpeg_arch}-static.tar.xz.md5"; \ tar Jxf "ffmpeg-release-${ffmpeg_arch}-static.tar.xz"; \ mv "ffmpeg-5.0.1-${ffmpeg_arch}-static/ffmpeg" /usr/bin; \ cd /; \ rm -rf /build_ffmpeg; # nginx RUN apt-get update && \ apt-get install -y nginx && \ apt-get clean && \ mkdir /ucast && \ chown 1000:1000 /ucast && \ chown -R 1000:1000 /var/lib/nginx /var/log/nginx COPY ./deploy/nginx.conf /etc/nginx/nginx.conf COPY ./deploy/nginx /etc/nginx/conf.d COPY ./deploy/entrypoint.py /entrypoint.py ENV UCAST_WORKDIR=/ucast EXPOSE 8001 ENTRYPOINT /entrypoint.py