Compare commits

..
11 Commits
Author SHA1 Message Date
junv 8de7bcead4 build and publish docker image when tagging 2021-01-01 17:52:31 +11:00
junv 8c303a67e5 Fix the build 2021-01-01 17:46:06 +11:00
junv 36d602b6fa update readme for multi arch image 2021-01-01 17:46:06 +11:00
junv aa8fa89a56 optimize the logic for docker image tags 2021-01-01 17:25:53 +11:00
junv bdd122231c prevent duplicate build for pull request 2021-01-01 17:25:53 +11:00
junv 5670d183fe Using multi arch to build docker image for multiple archtectures 2021-01-01 17:25:53 +11:00
junv 4d26b3527e upgrade filebrowser to v2.11.0 2021-01-01 08:18:36 +11:00
expoliandjunv 9aec111d0f Update arm64.Dockerfile
update the rclone arm64 based download url
2020-11-25 17:04:12 +11:00
junv d70d81ea73 Update configuration for anchore scanning 2020-11-25 16:05:35 +11:00
junv 8bab5e7280 Try to fix the error of docker vulnerability check error 2020-11-25 16:05:35 +11:00
expoliandjunv f12066c0fa Update arm64.Dockerfile
caddy 平台错误、无法运行
2020-11-25 15:43:51 +11:00
8 changed files with 158 additions and 60 deletions
+62 -6
View File
@@ -1,14 +1,70 @@
name: Docker Image CI
on: [push]
name: Build and Push docker image
on:
pull_request:
branches: master
push:
branches:
- '*'
tags:
- v*
jobs:
build:
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'wahyd4/aria2-ariang-docker'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Build and Publish main docker image to Registry
uses: elgohr/Publish-Docker-Github-Action@master
-
name: Prepare
id: prepare
run: |
DOCKER_IMAGE=wahyd4/aria2-ui
DOCKER_PLATFORMS=linux/amd64,linux/arm/v7,linux/arm64
VERSION=edge
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
fi
TAGS="--tag ${DOCKER_IMAGE}:${VERSION}"
if [[ $VERSION =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
TAGS="$TAGS --tag ${DOCKER_IMAGE}:latest"
fi
echo ::set-output name=docker_image::${DOCKER_IMAGE}
echo ::set-output name=version::${VERSION}
echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} \
--build-arg VERSION=${VERSION} \
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
--build-arg VCS_REF=${GITHUB_SHA::8} \
${TAGS} --file Dockerfile .
- name: Set up Docker Buildx
uses: crazy-max/ghaction-docker-buildx@v3
-
name: Cache Docker layers
uses: actions/cache@v2
id: cache
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
-
name: Docker Buildx (build)
run: |
docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }}
-
name: Login to DockerHub
if: github.ref == 'refs/heads/master'
uses: docker/login-action@v1
with:
name: wahyd4/aria2-ui
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_PASS }}
snapshot: true
-
name: Push docker images to Dockerhub
if: github.ref == 'refs/heads/master'
run: |
docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }}
-
name: Inspect image
if: github.ref == 'refs/heads/master'
run: |
docker buildx imagetools inspect ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}
+11 -3
View File
@@ -1,15 +1,23 @@
name: Docker Image Vulnability Check
on: [push]
on:
pull_request:
branches: master
push:
branches:
- '*'
jobs:
build:
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != 'wahyd4/aria2-ariang-docker'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Build the Docker image
run: docker build . --file Dockerfile --tag local/aria-ui:latest
- name: Scan image
uses: anchore/scan-action@v1
uses: anchore/scan-action@v2
with:
image-reference: "local/aria-ui:latest"
image: "local/aria-ui:latest"
fail-build: true
severity-cutoff: high
- name: grype scan JSON results
run: for j in `ls ./anchore-reports/*.json`; do echo "---- ${j} ----"; cat ${j}; echo; done
+2 -37
View File
@@ -18,46 +18,11 @@ ENV RCLONE_CONFIG=/app/conf/rclone.conf
ENV XDG_DATA_HOME=/app/.caddy/data
ENV XDG_CONFIG_HOME=/app/.caddy/config
ADD aria2c.sh caddy.sh Procfile init.sh start.sh rclone.sh /app/
ADD install.sh aria2c.sh caddy.sh Procfile init.sh start.sh rclone.sh /app/
ADD conf /app/conf
ADD Caddyfile SecureCaddyfile /usr/local/caddy/
RUN adduser -D -u 1000 junv \
&& apk update \
&& apk add runit shadow wget bash curl openrc gnupg aria2 tar mailcap --no-cache \
&& caddy_tag=2.2.1 \
&& wget -N https://github.com/caddyserver/caddy/releases/download/v${caddy_tag}/caddy_${caddy_tag}_linux_amd64.tar.gz \
&& tar -zxvf caddy_${caddy_tag}_linux_amd64.tar.gz \
&& mv caddy /usr/local/bin/ \
&& rm -rf caddy_${caddy_tag}_linux_amd64.tar.gz \
&& filebrowser_version=v2.7.0 \
&& platform=linux-amd64 \
&& wget -N https://github.com/filebrowser/filebrowser/releases/download/${filebrowser_version}/${platform}-filebrowser.tar.gz \
&& tar -zxvf ${platform}-filebrowser.tar.gz \
&& rm -rf ${platform}-filebrowser.tar.gz \
&& rm LICENSE README.md CHANGELOG.md \
&& wget -N https://bin.equinox.io/c/ekMN3bCZFUn/forego-stable-${platform}.tgz \
&& tar -zxvf forego-stable-${platform}.tgz \
&& rm -rf forego-stable-${platform}.tgz \
&& mkdir -p /usr/local/www \
&& mkdir -p /usr/local/www/aria2 \
&& rm -rf init /app/*.txt \
&& curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip \
&& unzip rclone-*.zip \
&& cd rclone-*-linux-amd64 \
&& cp rclone /usr/local/bin/ \
&& chown junv:junv /usr/local/bin/rclone \
&& chmod 755 /usr/local/bin/rclone \
&& rm /app/rclone-*.zip \
&& rm -rf /app/rclone-* \
&& mkdir /usr/local/www/aria2/Download \
&& cd /usr/local/www/aria2 \
&& chmod +rw /app/conf/aria2.session \
&& version=1.1.7 \
&& wget -N --no-check-certificate https://github.com/mayswind/AriaNg/releases/download/${version}/AriaNg-${version}.zip \
&& unzip AriaNg-${version}.zip \
&& rm -rf AriaNg-${version}.zip \
&& chmod -R 755 /usr/local/www/aria2
RUN ./install.sh
# folder for storing ssl keys
VOLUME /app/conf/key
+4 -6
View File
@@ -14,7 +14,7 @@ Aria2 + AriaNg
- [功能特性](#功能特性)
- [推荐使用的docker image tag](#推荐使用的docker-image-tag)
- [安装运行](#安装运行)
- [安装运行](#安装运行)
- [快速运行](#快速运行)
- [开启所有功能](#开启所有功能)
- [使用docker-compose 运行](#使用docker-compose-运行)
@@ -41,17 +41,15 @@ File Browser
* 支持绑定自定义用户ID,可以主机上的非`root`用户,也可以管理下载的文件
* Basic Auth 用户认证
* 文件管理和视频播放 ([File Browser](https://filebrowser.xyz/),注意默认情况下,只能访问和管理 `/data` 目录下的文件)
* 支持ARM CPU 架构,因此可以在树莓派中运行,请下载对应的[ARM TAG](https://cloud.docker.com/repository/docker/wahyd4/aria2-ui/tags) 版本, `arm32``arm64`
* 支持ARM CPU 架构,因此可以在树莓派等设备上运行,
## 推荐使用的docker image tag
* wahyd4/aria2-ui:latest
* wahyd4/aria2-ui:arm32
* wahyd4/aria2-ui:arm64
> ‼️ 如果你在莓派上运行本程序,请使用 `arm32` 版本
> Docker会为你自动选择对应CPU平台的image. e.g. arm64v8 或者 x86_64 平台
## 安装运行
## 安装运行
### 快速运行
+2 -4
View File
@@ -27,7 +27,7 @@ English | [简体中文](https://github.com/wahyd4/aria2-ariang-docker/blob/mast
One Docker image for file downloading, managing, sharing, as well as video playing and evening cloud storage synchronization.
Furthermore, it's pretty small and ARM CPU compatible which means you can also run it on Raspberry Pi🍓. (**with proper arm docker image tag**)
Furthermore, it's pretty small and ARM CPU compatible which means you can also run it on Raspberry Pi🍓.
Last but not least, Auto HTTPS can't be more easy!
@@ -52,10 +52,8 @@ File Browser
## Recommended versions
* wahyd4/aria2-ui:latest
* wahyd4/aria2-ui:arm32
* wahyd4/aria2-ui:arm64
> ‼️ If you plan to run this docker image on Raspberry Piplease use tag `arm32`
> Docker will pick the the proper ARCH for you. e.g. arm64v8 or x86_64
## How to run
+1 -1
View File
@@ -26,7 +26,7 @@ RUN adduser -D -u 1000 junv \
&& tar -zxvf caddy_*.tar.gz \
&& mv caddy /usr/local/bin/ \
&& rm -rf caddy_*.tar.gz \
&& filebrowser_version=v2.7.0 \
&& filebrowser_version=v2.11.0 \
&& platform=linux-armv6 \
&& wget -N https://github.com/filebrowser/filebrowser/releases/download/${filebrowser_version}/${platform}-filebrowser.tar.gz \
&& tar -zxvf ${platform}-filebrowser.tar.gz \
+3 -3
View File
@@ -22,11 +22,11 @@ RUN adduser -D -u 1000 junv \
&& apk update \
&& apk add runit shadow wget bash curl openrc gnupg aria2 tar --no-cache \
&& caddy_tag=2.2.1 \
&& wget -N https://github.com/caddyserver/caddy/releases/download/v${caddy_tag}/caddy_${caddy_tag}_linux_amd64.tar.gz \
&& wget -N https://github.com/caddyserver/caddy/releases/download/v${caddy_tag}/caddy_${caddy_tag}_linux_arm64.tar.gz \
&& tar -zxvf caddy_*.tar.gz \
&& mv caddy /usr/local/bin/ \
&& rm -rf caddy_*.tar.gz \
&& filebrowser_version=v2.7.0 \
&& filebrowser_version=v2.11.0 \
&& platform=linux-arm64 \
&& wget -N https://github.com/filebrowser/filebrowser/releases/download/${filebrowser_version}/${platform}-filebrowser.tar.gz \
&& tar -zxvf ${platform}-filebrowser.tar.gz \
@@ -38,7 +38,7 @@ RUN adduser -D -u 1000 junv \
&& mkdir -p /usr/local/www \
&& mkdir -p /usr/local/www/aria2 \
&& rm -rf init /app/*.txt \
&& curl -O https://downloads.rclone.org/v1.53.1/rclone-v1.53.1-linux-arm.zip \
&& curl -O https://downloads.rclone.org/v1.53.3/rclone-v1.53.3-linux-arm64.zip \
&& unzip rclone-*.zip \
&& cd rclone-* \
&& cp rclone /usr/local/bin/ \
Executable
+73
View File
@@ -0,0 +1,73 @@
#! /bin/sh -eux
echo "Set variables for $(arch)"
caddy_version=2.3.0
filebrowser_version=v2.11.0
rclone_version=v1.53.3
ariang_version=1.1.7
case "$(arch)" in
x86_64)
platform=linux-amd64
caddy_file=caddy_${caddy_version}_linux_amd64.tar.gz
rclone_file=rclone-${rclone_version}-${platform}.zip
forego_file=forego-stable-${platform}.tgz
;;
armv7l)
platform=linux-armv7
caddy_file=caddy_${caddy_version}_linux_armv7.tar.gz
rclone_file=rclone-${rclone_version}-linux-arm-v7.zip
forego_file=forego-stable-linux-arm.tgz
;;
aarch64)
platform=linux-arm64
caddy_file=caddy_${caddy_version}_linux_arm64.tar.gz
rclone_file=rclone-${rclone_version}-${platform}.zip
forego_file=forego-stable-${platform}.tgz
;;
*)
echo "unsupported arch $(arch), exit now"
exit 1
;;
esac
filebrowser_file=${platform}-filebrowser.tar.gz
ariang_file=AriaNg-${ariang_version}.zip
adduser -D -u 1000 junv \
&& apk update \
&& apk add runit shadow wget bash curl openrc gnupg aria2 tar mailcap --no-cache \
&& wget -N https://github.com/caddyserver/caddy/releases/download/v${caddy_version}/${caddy_file} \
&& tar -zxvf ${caddy_file} \
&& mv caddy /usr/local/bin/ \
&& rm -rf ${caddy_file} \
&& platform=linux-amd64 \
&& wget -N https://github.com/filebrowser/filebrowser/releases/download/${filebrowser_version}/${filebrowser_file} \
&& tar -zxvf ${filebrowser_file} \
&& rm -rf ${filebrowser_file} \
&& rm LICENSE README.md CHANGELOG.md \
&& wget -N https://bin.equinox.io/c/ekMN3bCZFUn/${forego_file} \
&& tar -zxvf ${forego_file} \
&& rm -rf ${forego_file} \
&& mkdir -p /usr/local/www \
&& mkdir -p /usr/local/www/aria2 \
&& rm -rf init /app/*.txt \
&& curl -O https://downloads.rclone.org/${rclone_version}/${rclone_file} \
&& unzip ${rclone_file} \
&& cd rclone-* \
&& cp rclone /usr/local/bin/ \
&& chown junv:junv /usr/local/bin/rclone \
&& chmod 755 /usr/local/bin/rclone \
&& rm /app/${rclone_file} \
&& rm -rf /app/rclone-* \
&& mkdir /usr/local/www/aria2/Download \
&& cd /usr/local/www/aria2 \
&& chmod +rw /app/conf/aria2.session \
&& wget -N --no-check-certificate https://github.com/mayswind/AriaNg/releases/download/${ariang_version}/${ariang_file} \
&& unzip ${ariang_file} \
&& rm -rf ${ariang_file} \
&& chmod -R 755 /usr/local/www/aria2