Skip to content

Commit 7111c2f

Browse files
committed
Adds arm-v6 version
1 parent edd0711 commit 7111c2f

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed

Dockerfile-arm32v6

+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
ARG IMAGE=resin/rpi-raspbian:stretch
2+
3+
FROM $IMAGE as builder
4+
5+
MAINTAINER datarhei <[email protected]>
6+
7+
ARG LAME_VERSION=3.100
8+
# x264 versions from August 2018 onward (> Core 152) seem to have a bug that cuts performance by 50%
9+
ARG X264_VERSION=20180717-2245-stable
10+
ARG FFMPEG_VERSION=4.1
11+
ARG NGINX_VERSION=1.14.1
12+
ARG NGINXRTMP_VERSION=1.2.1
13+
ARG NODE_VERSION=10.13.0
14+
15+
ENV SRC="/usr/local/" \
16+
LD_LIBRARY_PATH="/usr/local/lib" \
17+
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
18+
19+
RUN apt-get update && \
20+
apt-get install -y \
21+
pkg-config \
22+
curl \
23+
libpcre3-dev \
24+
libtool \
25+
libssl-dev \
26+
zlib1g-dev \
27+
libasound2-dev \
28+
build-essential
29+
30+
# x264
31+
RUN mkdir -p /dist && cd /dist && \
32+
curl -OL "http://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-${X264_VERSION}.tar.bz2" && \
33+
tar -xvj -f x264-snapshot-${X264_VERSION}.tar.bz2 && \
34+
cd x264-snapshot-${X264_VERSION} && \
35+
./configure --prefix="${SRC}" --bindir="${SRC}/bin" --enable-shared && \
36+
make -j$(nproc) && \
37+
make install
38+
39+
# libmp3lame
40+
RUN mkdir -p /dist && cd /dist && \
41+
curl -OL "https://kent.dl.sourceforge.net/project/lame/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz" && \
42+
tar -xvz -f lame-${LAME_VERSION}.tar.gz && \
43+
cd lame-${LAME_VERSION} && \
44+
./configure --prefix="${SRC}" --bindir="${SRC}/bin" --disable-static --enable-nasm && \
45+
make -j$(nproc) && \
46+
make install
47+
48+
# ffmpeg
49+
RUN mkdir -p /dist && cd /dist && \
50+
curl -OL "https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz" && \
51+
tar -xvz -f ffmpeg-${FFMPEG_VERSION}.tar.gz && \
52+
cd ffmpeg-${FFMPEG_VERSION} && \
53+
./configure \
54+
--bindir="${SRC}/bin" \
55+
--extra-cflags="-I${SRC}/include" \
56+
--extra-ldflags="-L${SRC}/lib" \
57+
--prefix="${SRC}" \
58+
--enable-nonfree \
59+
--enable-gpl \
60+
--enable-version3 \
61+
--enable-libmp3lame \
62+
--enable-libx264 \
63+
--enable-openssl \
64+
--enable-postproc \
65+
--enable-small \
66+
--enable-static \
67+
--disable-debug \
68+
--disable-doc \
69+
--disable-shared && \
70+
make -j$(nproc) && \
71+
make install
72+
73+
# nginx-rtmp
74+
RUN mkdir -p /dist && cd /dist && \
75+
curl -OL "https://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz" && \
76+
tar -xvz -f "nginx-${NGINX_VERSION}.tar.gz" && \
77+
curl -OL "https://github.com/arut/nginx-rtmp-module/archive/v${NGINXRTMP_VERSION}.tar.gz" && \
78+
tar -xvz -f "v${NGINXRTMP_VERSION}.tar.gz" && \
79+
cd nginx-${NGINX_VERSION} && \
80+
./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/dist/nginx-rtmp-module-${NGINXRTMP_VERSION} && \
81+
make -j$(nproc) && \
82+
make install
83+
84+
# node.js
85+
RUN mkdir -p /dist && cd /dist && \
86+
curl -OL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-armv6l.tar.xz" && \
87+
tar -xvJ -f "node-v${NODE_VERSION}-linux-armv6l.tar.xz" && \
88+
cd node-v${NODE_VERSION}-linux-armv6l && \
89+
cp -R bin /usr/local && \
90+
cp -R lib /usr/local
91+
92+
RUN rm -r /dist && \
93+
apt-get remove -y \
94+
pkg-config \
95+
curl \
96+
libpcre3-dev \
97+
libtool \
98+
libssl-dev \
99+
zlib1g-dev \
100+
build-essential && \
101+
apt-get autoremove -y
102+
103+
FROM $IMAGE
104+
105+
COPY --from=builder /usr/local/bin /usr/local/bin
106+
COPY --from=builder /usr/local/nginx /usr/local/nginx
107+
COPY --from=builder /usr/local/lib /usr/local/lib
108+
109+
RUN apt-get update && \
110+
apt-get install -y \
111+
ca-certificates \
112+
git \
113+
procps \
114+
libpcre3 \
115+
libssl-dev \
116+
zlib1g \
117+
v4l-utils \
118+
libv4l-0 \
119+
alsa-utils
120+
121+
COPY . /restreamer
122+
WORKDIR /restreamer
123+
124+
RUN cd /restreamer && \
125+
npm install -g bower grunt grunt-cli nodemon eslint && \
126+
npm install && \
127+
grunt build && \
128+
npm prune --production && \
129+
npm cache verify && \
130+
bower cache clean --allow-root && \
131+
npm uninstall -g bower grunt grunt-cli nodemon eslint && \
132+
npm prune --production && \
133+
apt-get remove -y \
134+
git \
135+
curl && \
136+
apt-get autoremove -y
137+
138+
ENV RS_USERNAME admin
139+
ENV RS_PASSWORD datarhei
140+
141+
EXPOSE 8080
142+
VOLUME ["/restreamer/db"]
143+
144+
CMD ["./run.sh"]

0 commit comments

Comments
 (0)