Ticket #8810: Dockerfile

File Dockerfile, 4.7 KB (added by Artem, 6 years ago)

Simple docker file compiled from ffmpeg manual to reproduce an issue

Line 
1FROM debian:latest
2
3# Install dependencies
4RUN apt-get update && apt-get upgrade && \
5 apt-get install -y ca-certificates openssl libssl-dev vim byobu nasm \
6 autoconf \
7 automake \
8 build-essential \
9 cmake \
10 git-core \
11 libass-dev \
12 libfreetype6-dev \
13 libgnutls28-dev \
14 libsdl2-dev \
15 libtool \
16 libva-dev \
17 libvdpau-dev \
18 libvorbis-dev \
19 libxcb1-dev \
20 libxcb-shm0-dev \
21 libxcb-xfixes0-dev \
22 pkg-config \
23 texinfo \
24 wget \
25 yasm \
26 zlib1g-dev \
27&& \
28 rm -rf /var/lib/apt/lists/*
29
30RUN mkdir -p $HOME/ffmpeg_build $HOME/ffmpeg_sources $HOME/bin && cd $HOME/ffmpeg_sources
31
32RUN cd $HOME/ffmpeg_sources && \
33wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \
34tar xjvf nasm-2.14.02.tar.bz2 && \
35cd nasm-2.14.02 && \
36./autogen.sh && \
37PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
38make -j8 && \
39make install
40
41RUN git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
42cd x264 && \
43PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
44PATH="$HOME/bin:$PATH" make -j8 && \
45make install
46
47RUN cd $HOME/ffmpeg_sources && \
48git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \
49cd libvpx && \
50PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \
51PATH="$HOME/bin:$PATH" make -j 8 && \
52make install
53
54RUN cd $HOME/ffmpeg_sources && \
55wget -O lame-3.100.tar.gz https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz && \
56tar xzvf lame-3.100.tar.gz && \
57cd lame-3.100 && \
58PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \
59PATH="$HOME/bin:$PATH" make -j 8 && \
60make install
61
62RUN cd $HOME/ffmpeg_sources && \
63git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
64cd opus && \
65./autogen.sh && \
66./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
67make -j 8 && \
68make install
69
70RUN apt-get install -yq libgnutls28-dev pkg-config
71RUN cd $HOME/ffmpeg_sources && \
72git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
73mkdir -p aom_build && \
74cd aom_build && \
75PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \
76PATH="$HOME/bin:$PATH" make -j 8 && \
77make install
78
79RUN cd ~/ffmpeg_sources && \
80git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
81cd fdk-aac && \
82autoreconf -fiv && \
83./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
84make -j8 && \
85make install
86
87RUN cd ~/ffmpeg_sources && \
88git -C x265_git pull 2> /dev/null || git clone --depth 1 https://bitbucket.org/multicoreware/x265_git && \
89cd x265_git/build/linux && \
90PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
91PATH="$HOME/bin:$PATH" make -j8 && \
92make install
93
94RUN cd ~/ffmpeg_sources && \
95git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
96cd x264 && \
97PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
98PATH="$HOME/bin:$PATH" make -j8 && \
99make install
100
101RUN cd ~/ffmpeg_sources && \
102git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
103mkdir -p aom_build && \
104cd aom_build && \
105PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \
106PATH="$HOME/bin:$PATH" make -j8 && \
107make install
108
109RUN cd $HOME/ffmpeg_sources && \
110wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
111tar xjvf ffmpeg-snapshot.tar.bz2
112RUN cd $HOME/ffmpeg_sources/ffmpeg && \
113PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
114 --prefix="$HOME/ffmpeg_build" \
115 --pkg-config-flags="--static" \
116 --extra-cflags="-I$HOME/ffmpeg_build/include" \
117 --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
118 --extra-libs="-lpthread -lm" \
119 --bindir="$HOME/bin" \
120 --enable-gpl \
121 --enable-gnutls \
122 --enable-libaom \
123 --enable-libass \
124 --enable-libfdk-aac \
125 --enable-libfreetype \
126 --enable-libmp3lame \
127 --enable-libopus \
128 --enable-libvorbis \
129 --enable-libvpx \
130 --enable-libx264 \
131 --enable-libx265 \
132 --enable-nonfree && \
133PATH="$HOME/bin:$PATH" make -j8 && \
134make install && \
135hash -r
136
137CMD ["/bin/bash"]