Improve Dockerfiles, but the build is slower regardless of caching, because nexe is hideously limited, we really need to find a better way to package these things
This commit is contained in:
parent
ba4c6cd9d0
commit
2efe1c0f48
55
Dockerfile
55
Dockerfile
@ -1,50 +1,13 @@
|
||||
FROM node:12.18-alpine3.12
|
||||
# Should be ffmpeg v4.2.3
|
||||
|
||||
ARG LIBDAV1D_VERSION=0.7.1
|
||||
ARG LIBDAV1D_URL="https://code.videolan.org/videolan/dav1d/-/archive/$LIBDAV1D_VERSION/dav1d-$LIBDAV1D_VERSION.tar.gz"
|
||||
|
||||
RUN apk add --update \
|
||||
curl nasm yasm build-base gcc zlib-dev libc-dev openssl-dev yasm-dev lame-dev libogg-dev x264-dev libvpx-dev libvorbis-dev x265-dev freetype-dev libass-dev libwebp-dev rtmpdump-dev libtheora-dev opus-dev meson ninja && \
|
||||
wget -O dav1d.tar.gz "$LIBDAV1D_URL" && \
|
||||
tar xfz dav1d.tar.gz && \
|
||||
cd dav1d-* && meson build --buildtype release -Ddefault_library=static && ninja -C build install && \
|
||||
DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -s http://ffmpeg.org/releases/ffmpeg-4.2.3.tar.gz | tar zxvf - -C . && \
|
||||
cd ffmpeg-4.2.3 && \
|
||||
./configure \
|
||||
--enable-version3 \
|
||||
--enable-gpl \
|
||||
--enable-nonfree \
|
||||
--enable-small \
|
||||
--enable-libmp3lame \
|
||||
--enable-libx264 \
|
||||
--enable-libdav1d \
|
||||
--enable-libx265 \
|
||||
--enable-libvpx \
|
||||
--enable-libtheora \
|
||||
--enable-libvorbis \
|
||||
--enable-libopus \
|
||||
--enable-libass \
|
||||
--enable-libwebp \
|
||||
--enable-librtmp \
|
||||
--enable-postproc \
|
||||
--enable-avresample \
|
||||
--enable-libfreetype \
|
||||
--enable-openssl \
|
||||
--enable-filter=drawtext \
|
||||
--disable-debug && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
rm -rf ${DIR} && \
|
||||
mv /usr/local/bin/ffmpeg /usr/bin/ffmpeg && \
|
||||
apk del build-base curl tar bzip2 x264 openssl nasm openssl xz gnupg && rm -rf /v
|
||||
WORKDIR /home/node/app
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
RUN npm install -g browserify nexe
|
||||
EXPOSE 8000
|
||||
CMD [ "npm", "start"]
|
||||
RUN npm install && npm install -g browserify nexe@3.3.7
|
||||
COPY . .
|
||||
RUN npm run build
|
||||
RUN npm run build && LINUXBUILD=dizquetv sh make_dist.sh linuxonly
|
||||
|
||||
FROM jrottenberg/ffmpeg:4.2-ubuntu1804
|
||||
EXPOSE 8000
|
||||
WORKDIR /home/node/app
|
||||
ENTRYPOINT [ "./dizquetv" ]
|
||||
COPY --from=0 /home/node/app/dist/dizquetv /home/node/app/
|
||||
RUN ln -s /usr/local/bin/ffmpeg /usr/bin/ffmpeg
|
||||
|
||||
@ -1,60 +1,13 @@
|
||||
FROM node:12.18-alpine3.12
|
||||
# Should be ffmpeg v4.2.3
|
||||
|
||||
ARG LIBDAV1D_VERSION=0.7.1
|
||||
ARG LIBDAV1D_URL="https://code.videolan.org/videolan/dav1d/-/archive/$LIBDAV1D_VERSION/dav1d-$LIBDAV1D_VERSION.tar.gz"
|
||||
|
||||
RUN apk add --update \
|
||||
curl nasm yasm build-base gcc zlib-dev libc-dev openssl-dev yasm-dev lame-dev libogg-dev x264-dev libvpx-dev libvorbis-dev x265-dev freetype-dev libass-dev libwebp-dev rtmpdump-dev libtheora-dev opus-dev meson ninja && \
|
||||
wget -O dav1d.tar.gz "$LIBDAV1D_URL" && \
|
||||
tar xfz dav1d.tar.gz && \
|
||||
cd dav1d-* && meson build --buildtype release -Ddefault_library=static && ninja -C build install && \
|
||||
DIR=$(mktemp -d) && cd ${DIR} && \
|
||||
curl -s http://ffmpeg.org/releases/ffmpeg-4.2.3.tar.gz | tar zxvf - -C . && \
|
||||
cd ffmpeg-4.2.3 && \
|
||||
./configure \
|
||||
--enable-version3 \
|
||||
--enable-gpl \
|
||||
--enable-nonfree \
|
||||
--enable-small \
|
||||
--enable-libmp3lame \
|
||||
--enable-libx264 \
|
||||
--enable-libdav1d \
|
||||
--enable-libx265 \
|
||||
--enable-libvpx \
|
||||
--enable-libtheora \
|
||||
--enable-libvorbis \
|
||||
--enable-libopus \
|
||||
--enable-libass \
|
||||
--enable-libwebp \
|
||||
--enable-librtmp \
|
||||
--enable-postproc \
|
||||
--enable-avresample \
|
||||
--enable-libfreetype \
|
||||
--enable-openssl \
|
||||
--enable-filter=drawtext \
|
||||
--disable-debug && \
|
||||
make && \
|
||||
make install && \
|
||||
make distclean && \
|
||||
rm -rf ${DIR} && \
|
||||
mv /usr/local/bin/ffmpeg /usr/bin/ffmpeg && \
|
||||
apk del build-base curl tar bzip2 x264 openssl nasm openssl xz gnupg && rm -rf /v
|
||||
WORKDIR /home/node/app
|
||||
COPY package*.json ./
|
||||
RUN npm install
|
||||
RUN npm install -g browserify nexe
|
||||
EXPOSE 8000
|
||||
CMD [ "npm", "start"]
|
||||
RUN npm install && npm install -g browserify nexe@3.3.7
|
||||
COPY . .
|
||||
RUN npm run build && sh make_dist.sh
|
||||
|
||||
RUN npm run build && LINUXBUILD=dizquetv sh make_dist.sh linuxonly
|
||||
|
||||
FROM jrottenberg/ffmpeg:4.2-nvidia
|
||||
RUN ln -s /usr/local/bin/ffmpeg /usr/bin/ffmpeg && mkdir -p /home/node/app/
|
||||
COPY --from=0 /home/node/app/dist/dizquetv-linux-x64 /home/node/app/
|
||||
EXPOSE 8000
|
||||
WORKDIR /home/node/app
|
||||
ENTRYPOINT [ "./dizquetv-linux-x64" ]
|
||||
|
||||
|
||||
|
||||
ENTRYPOINT [ "./dizquetv" ]
|
||||
COPY --from=0 /home/node/app/dist/dizquetv /home/node/app/
|
||||
RUN ln -s /usr/local/bin/ffmpeg /usr/bin/ffmpeg
|
||||
|
||||
36
make_dist.sh
36
make_dist.sh
@ -1,8 +1,9 @@
|
||||
#!/bin/sh
|
||||
MODE=${1:-all}
|
||||
WIN64=dizquetv-win-x64.exe
|
||||
WIN32=dizquetv-win-x86.exe
|
||||
MACOSX=dizquetv-macos-x64
|
||||
LINUX64=dizquetv-linux-x64
|
||||
LINUX64=${LINUXBUILD:-dizquetv-linux-x64}
|
||||
|
||||
rm -R ./dist/*
|
||||
npm run build
|
||||
@ -10,18 +11,23 @@ npm run compile
|
||||
cp -R ./web ./dist/web
|
||||
cp -R ./resources ./dist/
|
||||
cd dist
|
||||
nexe -r "./**/*" -t windows-x64-12.18.2 --output $WIN64
|
||||
mv $WIN64 ../
|
||||
nexe -r "./**/*" -t linux-x64-12.16.2 --output $LINUX64
|
||||
mv $LINUX64 ../
|
||||
nexe -r "./**/*" -t mac-x64-12.18.2 --output $MACOSX
|
||||
mv $MACOSX ../
|
||||
nexe -r "./**/*" -t windows-x86-12.18.2 --output $WIN32
|
||||
mv ../$WIN64 ./
|
||||
mv ../$LINUX64 ./
|
||||
mv ../$MACOSX ./
|
||||
echo dist/$WIN64
|
||||
echo dist/$LINUX64
|
||||
echo dist/$MACOSX
|
||||
echo dist/$WIN32
|
||||
if [ "$MODE" == "all" ]; then
|
||||
nexe -r "./**/*" -t windows-x64-12.18.2 --output $WIN64
|
||||
mv $WIN64 ../
|
||||
nexe -r "./**/*" -t mac-x64-12.18.2 --output $MACOSX
|
||||
mv $MACOSX ../
|
||||
nexe -r "./**/*" -t windows-x86-12.18.2 --output $WIN32
|
||||
mv $WIN32 ../
|
||||
fi
|
||||
|
||||
nexe -r "./**/*" -t linux-x64-12.16.2 --output $LINUX64 || exit 1
|
||||
echo dist/$LINUX64
|
||||
if [ "$MODE" == "all" ]; then
|
||||
mv ../$WIN64 ./
|
||||
mv ../$WIN32 ./
|
||||
mv ../$MACOSX ./
|
||||
echo dist/$WIN64
|
||||
echo dist/$MACOSX
|
||||
echo dist/$WIN32
|
||||
fi
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user