Merge pull request #396 from anthonyraymond/master

Update arm dockerfile to aria 1.32 and enforce aria2 best practices
This commit is contained in:
hamza zia 2017-10-31 08:07:02 +08:00 committed by GitHub
commit 77636e25af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 14 deletions

View File

@ -1,14 +1,13 @@
FROM resin/rpi-raspbian FROM resin/rpi-raspbian
# less priviledge user, the id should map the user the downloaded files belongs to # less priviledge user, the id should map the user the downloaded files belongs to
RUN groupadd -r aria && useradd -r -g aria aria -u 1000 RUN groupadd -r aria && useradd -m -r -g aria aria -u 1000
# webui + aria2 # webui + aria2
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y busybox curl \ && apt-get install -y busybox curl git \
git \
make g++ libssl-dev nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libxml2-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool \ make g++ libssl-dev nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libxml2-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool \
&& ARIA2_VERSION="1.31.0" \ && ARIA2_VERSION="1.32.0" \
&& mkdir aria_build && cd aria_build \ && mkdir aria_build && cd aria_build \
&& curl -L https://github.com/aria2/aria2/releases/download/release-"$ARIA2_VERSION"/aria2-"$ARIA2_VERSION".tar.gz > aria2.tar.gz \ && curl -L https://github.com/aria2/aria2/releases/download/release-"$ARIA2_VERSION"/aria2-"$ARIA2_VERSION".tar.gz > aria2.tar.gz \
&& tar -xzf aria2.tar.gz \ && tar -xzf aria2.tar.gz \
@ -30,7 +29,7 @@ RUN GITHUB_REPO="https://github.com/tianon/gosu" \
&& chmod +x /usr/local/bin/gosu && chmod +x /usr/local/bin/gosu
# goland install (compile source code for ARM since no version are currently available) # goland install (compile source code for ARM since no version are currently available)
RUN curl -L "https://storage.googleapis.com/golang/go1.8.linux-armv6l.tar.gz" > go.tar.gz \ RUN curl -L "https://storage.googleapis.com/golang/go1.9.1.linux-armv6l.tar.gz" > go.tar.gz \
&& tar -xzf go.tar.gz -C /usr/local \ && tar -xzf go.tar.gz -C /usr/local \
&& export GOROOT="/usr/local/go" && export GOPATH=`pwd` \ && export GOROOT="/usr/local/go" && export GOPATH=`pwd` \
&& $GOROOT/bin/go get github.com/mattn/goreman && $GOROOT/bin/go build -o /usr/local/bin/goreman github.com/mattn/goreman \ && $GOROOT/bin/go get github.com/mattn/goreman && $GOROOT/bin/go build -o /usr/local/bin/goreman github.com/mattn/goreman \
@ -39,10 +38,12 @@ RUN curl -L "https://storage.googleapis.com/golang/go1.8.linux-armv6l.tar.gz" >
&& unset GOROOT && unset GOPATH && unset GOROOT && unset GOPATH
# goreman setup # goreman setup
RUN echo "web: gosu aria /bin/busybox httpd -f -p 8080 -h /webui-aria2\nbackend: gosu aria /usr/bin/aria2c --conf-path=/data/.aria2/aria2.conf" /data/downloads/*.torrent > Procfile RUN echo "web: gosu aria /bin/busybox httpd -f -p 8080 -h /webui-aria2\nbackend: gosu aria /usr/bin/aria2c --conf-path=/home/aria/.aria2/aria2.conf /data/downloads/*.torrent" > Procfile
# aria2 downloads directory # aria2 downloads directory
VOLUME /data VOLUME /data/downloads
# aria2 conf directory
VOLUME /home/aria/.aria2
# aria2 RPC port, map as-is or reconfigure webui # aria2 RPC port, map as-is or reconfigure webui
EXPOSE 6800/tcp EXPOSE 6800/tcp

View File

@ -68,17 +68,22 @@ Build it (may take several hours due to the aria2 compilation process. Don't pan
docker build -f Dockerfile.arm -t yourname/webui-aria2 . docker build -f Dockerfile.arm -t yourname/webui-aria2 .
``` ```
Prepare the host volume: Prepare the host volume:
This image required few file to be mounted in the container's `/data` folder. This image required few file to be mounted in the container.
``` ```
.aria2/session.txt (empty file) /home/aria/aria2/session.txt (empty file)
.aria2/aria2.log (empty file) /home/aria/aria2/aria2.log (empty file)
.aria2/aria2.conf (aria2 configuration file, not webui-aria2 conf) must contains at least `enable-rpc=true` and `rpc-listen-all=true` /home/aria/aria2/aria2.conf (aria2 configuration file, not webui-aria2 conf) must contains at least `enable-rpc=true` and `rpc-listen-all=true`
./downloads/ (where the downloaded files goes) /data/downloads/ (where the downloaded files goes)
``` ```
Run it Run it
``` ```
docker run --restart=always -d -v /home/<USER>/data/aria2:/data -p 6800:6800 -p 9100:8080 --name="webui-aria2" yourname/webui-aria2 docker run --restart=always \
-v /home/<USER>/data/aria2/downloads:/data/downloads \
-v /home/<USER>/data/aria2/.aria2:/home/aria/.aria2 \
-p 6800:6800 -p 9100:8080 \
--name="webui-aria2" \
-d yourname/webui-aria2
``` ```
Support Support