| 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 |
| |