45 lines
1.3 KiB
Docker
45 lines
1.3 KiB
Docker
# DOCKER-VERSION 17.12.0-ce, build c97c6d6
|
|
|
|
# Pull alpine base image
|
|
FROM alpine:latest AS codecbuilder
|
|
|
|
# Configure build settings
|
|
ENV LIBBPG_VERSION=0.9.8 \
|
|
CPU_CORES=1
|
|
|
|
# Fetch and extract bpg library
|
|
RUN cd /tmp && \
|
|
wget https://bellard.org/bpg/libbpg-${LIBBPG_VERSION}.tar.gz && \
|
|
mkdir -p /opt/libbpg && \
|
|
tar --strip-components=1 -xzf libbpg-${LIBBPG_VERSION}.tar.gz -C /opt/libbpg && \
|
|
rm -f libbpg-${LIBBPG_VERSION}.tar.gz
|
|
|
|
# Set current working directory
|
|
WORKDIR /opt/libbpg
|
|
|
|
# Set bpg build options
|
|
ENV USE_EMCC=y \
|
|
USE_JCTVC=y \
|
|
USE_X265=
|
|
|
|
# Install packages required to build codecs
|
|
RUN apk add --update --no-cache \
|
|
build-base cmake libpng-dev libjpeg-turbo-dev \
|
|
sdl-dev sdl_image-dev yasm && \
|
|
echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && \
|
|
apk add --no-cache emscripten
|
|
|
|
# Compile codecs in intermediate container
|
|
RUN make -j ${CPU_CORES} && make install
|
|
|
|
# Generate js file integrity hashes
|
|
RUN apk add --update --no-cache openssl
|
|
COPY ./bin/generate-hashes.sh .
|
|
RUN chmod +x generate-hashes.sh && ./generate-hashes.sh
|
|
|
|
# Move codecs and hashes into busybox container
|
|
FROM busybox AS codecs
|
|
COPY --from=codecbuilder /usr/local/bin/bpg* /usr/local/bin/
|
|
COPY --from=codecbuilder /opt/libbpg/bpg*.js* /var/www/
|
|
WORKDIR /usr/local/bin
|