mirror of
https://github.com/datarhei/restreamer.git
synced 2025-12-11 22:14:02 +01:00
133 lines
4.0 KiB
Docker
133 lines
4.0 KiB
Docker
FROM node:5.9.0-slim
|
|
|
|
MAINTAINER datarhei <info@datarhei.org>
|
|
|
|
ENV FFMPEG_VERSION=2.8.6 \
|
|
YASM_VERSION=1.3.0 \
|
|
LAME_VERSION=3_99_5 \
|
|
NGINX_VERSION=1.9.9 \
|
|
NGINX_RTMP_VERSION=1.1.7.10 \
|
|
|
|
SRC="/usr/local" \
|
|
LD_LIBRARY_PATH="${SRC}/lib" \
|
|
PKG_CONFIG_PATH="${SRC}/lib/pkgconfig" \
|
|
|
|
BUILDDEPS="autoconf automake gcc g++ libtool make nasm zlib1g-dev libssl-dev xz-utils cmake build-essential libpcre3-dev"
|
|
|
|
RUN rm -rf /var/lib/apt/lists/* && \
|
|
apt-get update && \
|
|
apt-get install -y --force-yes curl git libpcre3 tar perl ca-certificates ${BUILDDEPS} && \
|
|
|
|
# yasm
|
|
DIR="$(mktemp -d)" && cd "${DIR}" && \
|
|
curl -LOks "https://www.tortall.net/projects/yasm/releases/yasm-${YASM_VERSION}.tar.gz" && \
|
|
tar xzvf "yasm-${YASM_VERSION}.tar.gz" && \
|
|
cd "yasm-${YASM_VERSION}" && \
|
|
./configure \
|
|
--prefix="${SRC}" \
|
|
--bindir="${SRC}/bin" && \
|
|
make -j"$(nproc)" && \
|
|
make install && \
|
|
make distclean && \
|
|
rm -rf "${DIR}" && \
|
|
|
|
# x264
|
|
DIR="$(mktemp -d)" && cd "${DIR}" && \
|
|
git clone --depth 1 "git://git.videolan.org/x264" && \
|
|
cd x264 && \
|
|
./configure \
|
|
--prefix="${SRC}" \
|
|
--bindir="${SRC}/bin" \
|
|
--enable-static \
|
|
--disable-cli && \
|
|
make -j"$(nproc)" && \
|
|
make install && \
|
|
make distclean && \
|
|
rm -rf "${DIR}" && \
|
|
|
|
# libmp3lame
|
|
DIR="$(mktemp -d)" && cd "${DIR}" && \
|
|
curl -LOks "https://github.com/rbrito/lame/archive/RELEASE__${LAME_VERSION}.tar.gz" && \
|
|
tar xzvf "RELEASE__${LAME_VERSION}.tar.gz" && \
|
|
cd "lame-RELEASE__${LAME_VERSION}" && \
|
|
./configure \
|
|
--prefix="${SRC}" \
|
|
--bindir="${SRC}/bin" \
|
|
--enable-nasm \
|
|
--disable-shared && \
|
|
make -j"$(nproc)" && \
|
|
make install && \
|
|
make distclean && \
|
|
rm -rf "${DIR}" && \
|
|
|
|
# ffmpeg
|
|
# patch: andrew-shulgin Ignore invalid sprop-parameter-sets missing PPS
|
|
DIR="$(mktemp -d)" && cd "${DIR}" && \
|
|
curl -LOks "https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz" && \
|
|
tar xzvf "ffmpeg-${FFMPEG_VERSION}.tar.gz" && \
|
|
cd "ffmpeg-${FFMPEG_VERSION}" && \
|
|
curl -Lks "https://github.com/FFmpeg/FFmpeg/commit/1c7e2cf9d33968375ee4025d2279c937e147dae2.patch" | patch -p1 && \
|
|
./configure \
|
|
--prefix="${SRC}" \
|
|
--bindir="${SRC}/bin" \
|
|
--extra-cflags="-I${SRC}/include" \
|
|
--extra-ldflags="-L${SRC}/lib" \
|
|
--extra-libs=-ldl \
|
|
--enable-nonfree \
|
|
--enable-gpl \
|
|
--enable-version3 \
|
|
--enable-avresample \
|
|
--enable-libmp3lame \
|
|
--enable-libx264 \
|
|
--enable-openssl \
|
|
--enable-postproc \
|
|
--enable-small \
|
|
--disable-debug \
|
|
--disable-doc \
|
|
--disable-ffserver && \
|
|
make -j"$(nproc)" && \
|
|
make install && \
|
|
make distclean && \
|
|
hash -r && \
|
|
cd tools && \
|
|
make qt-faststart && \
|
|
cp qt-faststart "${SRC}/bin" && \
|
|
rm -rf "${DIR}" && \
|
|
echo "${SRC}/lib" > "/etc/ld.so.conf.d/libc.conf" && \
|
|
ffmpeg -buildconf && \
|
|
|
|
# nginx-rtmp
|
|
DIR="$(mktemp -d)" && cd "${DIR}" && \
|
|
curl -LOks "https://github.com/nginx/nginx/archive/release-${NGINX_VERSION}.tar.gz" && \
|
|
tar xzvf "release-${NGINX_VERSION}.tar.gz" && \
|
|
curl -LOks "https://github.com/sergey-dryabzhinsky/nginx-rtmp-module/archive/v${NGINX_RTMP_VERSION}.tar.gz" && \
|
|
tar xzvf "v${NGINX_RTMP_VERSION}.tar.gz" && \
|
|
cd "nginx-release-${NGINX_VERSION}" && \
|
|
auto/configure \
|
|
--with-http_ssl_module \
|
|
--add-module="../nginx-rtmp-module-${NGINX_RTMP_VERSION}" && \
|
|
make -j"$(nproc)" && \
|
|
make install && \
|
|
rm -rf "${DIR}" && \
|
|
|
|
apt-get purge -y --auto-remove ${BUILDDEPS} && \
|
|
rm -rf /tmp/*
|
|
|
|
COPY . /restreamer
|
|
WORKDIR /restreamer
|
|
|
|
RUN npm install -g bower grunt grunt-cli nodemon public-ip eslint && \
|
|
npm install && \
|
|
grunt build && \
|
|
npm prune --production && \
|
|
npm cache clean && \
|
|
bower cache clean --allow-root
|
|
|
|
ENV RS_USERNAME admin \
|
|
RS_PASSWORD datarhei
|
|
|
|
EXPOSE 8080
|
|
VOLUME ["/restreamer/db"]
|
|
|
|
CMD ["./run.sh"]
|