|
FROM ubuntu:22.04 |
|
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
tar \ |
|
gzip \ |
|
file \ |
|
jq \ |
|
curl \ |
|
sed \ |
|
aria2 \ |
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
RUN useradd -m -u 1000 user |
|
|
|
|
|
USER user |
|
|
|
|
|
ENV HOME=/home/user \ |
|
PATH=/home/user/.local/bin:$PATH |
|
|
|
|
|
WORKDIR $HOME/alist |
|
|
|
|
|
RUN curl -sL https://api.github.com/repos/alist-org/alist/releases/latest | \ |
|
jq -r '.assets[] | select(.name | test("linux-amd64.tar.gz$")) | .browser_download_url' | \ |
|
xargs curl -L | tar -zxvf - -C $HOME/alist |
|
|
|
|
|
RUN chmod +x $HOME/alist/alist && \ |
|
mkdir -p $HOME/alist/data |
|
|
|
|
|
CMD echo '{\ |
|
"force": false,\ |
|
"address": "0.0.0.0",\ |
|
"port": 7860,\ |
|
"scheme": {\ |
|
"https": false,\ |
|
"cert_file": "",\ |
|
"key_file": ""\ |
|
},\ |
|
"cache": {\ |
|
"expiration": 60,\ |
|
"cleanup_interval": 120\ |
|
},\ |
|
"database": {\ |
|
"type": "mysql",\ |
|
"host": "ENV_MYSQL_HOST",\ |
|
"port": ENV_MYSQL_PORT,\ |
|
"user": "ENV_MYSQL_USER",\ |
|
"password": "ENV_MYSQL_PASSWORD",\ |
|
"name": "ENV_MYSQL_DATABASE"\ |
|
}\ |
|
}' > $HOME/alist/data/config.json && \ |
|
echo ' |
|
sed -i "s/ENV_MYSQL_HOST/${MYSQL_HOST:-localhost}/g" $HOME/alist/data/config.json\n\ |
|
sed -i "s/ENV_MYSQL_PORT/${MYSQL_PORT:-3306}/g" $HOME/alist/data/config.json\n\ |
|
sed -i "s/ENV_MYSQL_USER/${MYSQL_USER:-root}/g" $HOME/alist/data/config.json\n\ |
|
sed -i "s/ENV_MYSQL_PASSWORD/${MYSQL_PASSWORD:-password}/g" $HOME/alist/data/config.json\n\ |
|
sed -i "s/ENV_MYSQL_DATABASE/${MYSQL_DATABASE:-alist}/g" $HOME/alist/data/config.json\n\ |
|
aria2c --enable-rpc --rpc-listen-all --rpc-allow-origin-all --rpc-listen-port=6800 --daemon\n\ |
|
$HOME/alist/alist server --data $HOME/alist/data' > $HOME/alist/start.sh && \ |
|
chmod +x $HOME/alist/start.sh &&\ |
|
/bin/bash -c "/home/user/alist/start.sh" |
|
|
|
|
|
EXPOSE 7860 |
|
|