FROM alpine as builder
RUN apk add --no-cache \
autoconf \
automake \
build-base \
c-ares-dev \
expat-dev \
gettext-dev \
git \
libtool \
openssl-dev \
pkgconf \
sqlite-dev
RUN git clone --depth=1 https://github.com/aria2/aria2
RUN cd aria2 \
&& autoreconf -i \
&& ./configure \
&& make -j 4
FROM node:11 as webui
RUN git clone --depth=1 https://github.com/mayswind/AriaNg /AriaNg
WORKDIR /AriaNg
COPY ariang-additional-options.js .
RUN ( \
head -n-3 src/scripts/config/aria2Options.js; \
cat ariang-additional-options.js; \
tail -3 src/scripts/config/aria2Options.js \
) > src/scripts/config/aria2Options.js.new \
&& mv src/scripts/config/aria2Options.js.new src/scripts/config/aria2Options.js
RUN npm install \
&& npm install natives@1.1.6 \
&& npx gulp clean build-bundle
FROM alpine
aria2 \
nginx \
su-exec
RUN apk add --no-cache libintl
COPY --from=builder /aria2/src/aria2c /usr/local/bin/
COPY --from=sbruder/aria2_exporter /aria2_exporter /aria2_exporter
COPY --from=webui /AriaNg/dist /srv/www/webui
COPY --from=nginx:alpine /etc/nginx/nginx.conf /etc/nginx/nginx.conf
COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]