-
-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathDockerfile
65 lines (52 loc) · 2.32 KB
/
Dockerfile
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
FROM python:latest AS builder
# automode
ARG AUTOMODE="OFF"
ARG CONFIG=""
ARG AUTOUPDATE="OFF"
ENV AUTOMODE=$AUTOMODE CONFIG=$CONFIG AUTOUPDATE=$AUTOUPDATE
# we need non-free
RUN printf "\ndeb https://deb.debian.org/debian bookworm contrib non-free" >> "/etc/apt/sources.list.d/debian-extended.list"
# apt
# install packages before copying mediaforge so docker can save the state and make debugging this quicker
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get --no-install-recommends install -y \
# most packages
nano nodejs libgif-dev lsb-release software-properties-common \
# ffmpeg
# https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu#FFmpeg
# build deps
autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libgnutls28-dev libmp3lame-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev meson ninja-build pkg-config texinfo wget yasm zlib1g-dev \
# build deps "for ubuntu 20.04"
libunistring-dev libaom-dev libdav1d-dev \
# deps not listed in the build guide grrr \
libsvtav1enc-dev \
# optional deps
libdav1d-dev libopus-dev libfdk-aac-dev libvpx-dev libx265-dev libnuma-dev libx264-dev nasm \
# libvips
# https://www.libvips.org/install.html#building-libvips-from-source
# build deps
ninja-build build-essential pkg-config bc \
# other deps
libcgif-dev libfftw3-dev libopenexr-dev libgsf-1-dev libglib2.0-dev liborc-dev libopenslide-dev libmatio-dev libwebp-dev libjpeg-dev libexpat1-dev libexif-dev libtiff5-dev libcfitsio-dev libpoppler-glib-dev librsvg2-dev libpango1.0-dev libopenjp2-7-dev libimagequant-dev \
# imagemagick
fuse libfuse2
# python packages
RUN python -m pip install --user --upgrade --no-warn-script-location --root-user-action=ignore \
pip poetry \
# libvips
meson
RUN apt-get -y autoremove
# copy mediaforge code to container
COPY . mediaforge
RUN chmod +x /mediaforge/docker/*
RUN bash -c /mediaforge/docker/buildffmpeg.sh
RUN bash -c /mediaforge/docker/buildvips.sh
RUN bash -c /mediaforge/docker/installimagemagick.sh
WORKDIR mediaforge
RUN python -m poetry install
RUN cp config.example.py config.py
# so mediaforge knows to prompt with nano
ENV AM_I_IN_A_DOCKER_CONTAINER Yes
ENTRYPOINT ["/bin/bash", "/mediaforge/docker/dockerentry.sh"]
#CMD ["/bin/bash", "./dockerentry.sh"]