mirror of
https://github.com/lan-tianxiang/JS_TOOL.git
synced 2025-07-13 16:02:36 +08:00
.
This commit is contained in:
63
docker/docker-bot/Dockerfile
Executable file
63
docker/docker-bot/Dockerfile
Executable file
@ -0,0 +1,63 @@
|
||||
FROM node:lts-alpine
|
||||
ARG REPO=gitee
|
||||
ARG REPO_URL=$REPO.com
|
||||
ARG JD_SHELL=jd_shell
|
||||
ARG JD_SHELL_BRANCH=master
|
||||
ARG JD_SHELL_HOST=jd_shell_$REPO
|
||||
ARG JD_SCRIPTS=jd_scripts
|
||||
ARG JD_SCRIPTS_BRANCH=master
|
||||
ARG JD_SCRIPTS_HOST=jd_scripts_$REPO
|
||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
|
||||
LANG=zh_CN.UTF-8 \
|
||||
SHELL=/bin/bash \
|
||||
PS1='\u@\h:\w $ ' \
|
||||
JD_DIR=/jd \
|
||||
ENABLE_TG_BOT=false \
|
||||
ENABLE_HANGUP=false \
|
||||
ENABLE_RESET_REPO_URL=true \
|
||||
JD_SHELL_URL=git@$JD_SHELL_HOST:highdimen/$JD_SHELL.git \
|
||||
JD_SCRIPTS_URL=git@$JD_SCRIPTS_HOST:highdimen/$JD_SCRIPTS.git
|
||||
WORKDIR $JD_DIR
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
|
||||
&& apk update -f \
|
||||
&& apk upgrade \
|
||||
&& apk --no-cache add -f bash \
|
||||
coreutils \
|
||||
git \
|
||||
wget \
|
||||
curl \
|
||||
nano \
|
||||
tzdata \
|
||||
perl \
|
||||
openssh-client \
|
||||
python3 \
|
||||
zlib-dev \
|
||||
gcc \
|
||||
jpeg-dev \
|
||||
python3-dev \
|
||||
musl-dev \
|
||||
&& rm -rf /var/cache/apk/* \
|
||||
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
||||
&& echo "Asia/Shanghai" > /etc/timezone \
|
||||
&& mkdir -p /root/.ssh \
|
||||
&& echo -e $JD_SHELL_KEY > /root/.ssh/$JD_SHELL \
|
||||
&& echo -e $JD_SCRIPTS_KEY > /root/.ssh/$JD_SCRIPTS \
|
||||
&& chmod 600 /root/.ssh/$JD_SHELL /root/.ssh/$JD_SCRIPTS \
|
||||
&& echo -e "Host $JD_SHELL_HOST\n\tHostname $REPO_URL\n\tIdentityFile=/root/.ssh/$JD_SHELL\n\nHost $JD_SCRIPTS_HOST\n\tHostname $REPO_URL\n\tIdentityFile=/root/.ssh/$JD_SCRIPTS" > /root/.ssh/config \
|
||||
&& echo -e "\n\nHost *\n StrictHostKeyChecking no\n" >> /etc/ssh/ssh_config \
|
||||
&& chmod 644 /root/.ssh/config \
|
||||
&& ssh-keyscan $REPO_URL > /root/.ssh/known_hosts \
|
||||
&& git clone -b $JD_SHELL_BRANCH $JD_SHELL_URL $JD_DIR \
|
||||
&& git clone -b $JD_SCRIPTS_BRANCH $JD_SCRIPTS_URL $JD_DIR/scripts \
|
||||
&& cd $JD_DIR/scripts \
|
||||
&& npm install \
|
||||
&& npm install -g pm2 \
|
||||
&& ln -sf $JD_DIR/jd.sh /usr/local/bin/jd \
|
||||
&& cp -f $JD_DIR/docker/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh \
|
||||
&& chmod 777 /usr/local/bin/docker-entrypoint.sh \
|
||||
&& chmod 777 $JD_DIR/*.sh \
|
||||
&& rm -rf /root/.npm \
|
||||
&& ln -sf /usr/bin/python3 /usr/bin/python \
|
||||
&& cd $JD_DIR/bot \
|
||||
&& pip3 install -r requirements.txt
|
||||
ENTRYPOINT bash $JD_DIR/docker/docker-bot/docker-entrypoint.sh
|
64
docker/docker-bot/docker-entrypoint.sh
Executable file
64
docker/docker-bot/docker-entrypoint.sh
Executable file
@ -0,0 +1,64 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo -e "\n======================== 1. 检测文件夹 ========================\n"
|
||||
if [ ! -d $JD_DIR/config ]; then
|
||||
echo -e "没有映射config配置目录给本容器,在容器内创建该文件夹\n"
|
||||
mkdir -p /jd/config
|
||||
fi
|
||||
if [ ! -d $JD_DIR/log ]; then
|
||||
echo -e "没有映射log日志目录给本容器,在容器内创建该文件夹\n"
|
||||
mkdir -p /jd/log
|
||||
fi
|
||||
if [ ! -d $JD_DIR/thirdpard ]; then
|
||||
echo -e "没有映射thirdpard脚本目录给本容器,在容器内创建该文件夹\n"
|
||||
mkdir -p /jd/thirdpard
|
||||
fi
|
||||
|
||||
echo -e "\n======================== 2. 更新源代码 ========================\n"
|
||||
jd update
|
||||
echo
|
||||
|
||||
echo -e "======================== 3. 检测配置文件 ========================\n"
|
||||
|
||||
crontab $JD_DIR/config/crontab.list
|
||||
echo -e "成功添加定时任务...\n"
|
||||
|
||||
echo -e "======================== 4. 启动挂机程序 ========================\n"
|
||||
rm -rf /root/.pm2/logs/* >/dev/null 2>&1
|
||||
|
||||
if [[ $ENABLE_HANGUP == true ]]; then
|
||||
if [ -f $JD_DIR/config/cookie.sh ]; then
|
||||
. $JD_DIR/config/cookie.sh
|
||||
fi
|
||||
. $JD_DIR/config/config.sh
|
||||
if [[ $Cookie1 ]]; then
|
||||
jd hangup 2>/dev/null
|
||||
echo -e "挂机程序启动成功...\n"
|
||||
else
|
||||
echo -e "config.sh中还未填入有效的Cookie,可能是首次部署容器,因此不启动挂机程序...\n"
|
||||
fi
|
||||
elif [[ ${ENABLE_HANGUP} == false ]]; then
|
||||
echo -e "已设置为不自动启动挂机程序,跳过...\n"
|
||||
fi
|
||||
|
||||
if type python3 &>/dev/null; then
|
||||
echo -e "======================== 5. 启动Telegram Bot ========================\n"
|
||||
if [[ $ENABLE_TG_BOT == true ]]; then
|
||||
cp -f $JD_DIR/bot/bot.py $JD_DIR/config/bot.py
|
||||
if [[ -z $(grep -E "你的USERID" $JD_DIR/config/bot.json) ]]; then
|
||||
cd $JD_DIR/config
|
||||
pm2 start bot.py --watch "$JD_DIR/config/bot.py" --watch-delay 10 --name=bot
|
||||
else
|
||||
echo -e "似乎 $JD_DIR/config/bot.json 还未修改为你自己的信息,可能是首次部署容器,因此不启动Telegram Bot...\n"
|
||||
fi
|
||||
else
|
||||
echo -e "已设置为不自动启动Telegram Bot,跳过...\n"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "容器启动成功...\n"
|
||||
|
||||
crond -f
|
||||
|
||||
exec "$@"
|
21
docker/docker-entrypoint.sh
Executable file
21
docker/docker-entrypoint.sh
Executable file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
crond
|
||||
|
||||
echo -e "\n======================== 2. 更新源代码 ========================\n"
|
||||
jd update
|
||||
echo
|
||||
|
||||
crontab /root/jd/config/crontab.list
|
||||
|
||||
jd panelon
|
||||
jd panelon
|
||||
|
||||
echo -e "容器启动成功...\n"
|
||||
|
||||
if [ "${1#-}" != "${1}" ] || [ -z "$(command -v "${1}")" ]; then
|
||||
set -- node "$@"
|
||||
fi
|
||||
|
||||
exec "$@"
|
29
docker/docker/Dockerfile
Executable file
29
docker/docker/Dockerfile
Executable file
@ -0,0 +1,29 @@
|
||||
FROM node:lts-alpine
|
||||
ARG REPO=gitee
|
||||
ARG REPO_URL=$REPO.com
|
||||
ARG JS_TOOL_URL=https://gitee.com/highdimen/js_tool.git
|
||||
ARG JS_TOOL_BRANCH=A1
|
||||
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
|
||||
LANG=zh_CN.UTF-8 \
|
||||
SHELL=/bin/bash \
|
||||
PS1='\u@\h:\w $ ' \
|
||||
JD_DIR=/root/jd \
|
||||
ENABLE_TG_BOT=false \
|
||||
ENABLE_WEB_PANEL=true
|
||||
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories \
|
||||
&& apk update -f \
|
||||
&& apk upgrade \
|
||||
&& apk add --no-cache bash coreutils moreutils git wget curl nano perl openssh-client tzdata \
|
||||
&& rm -rf /var/cache/apk/* \
|
||||
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
||||
&& echo "Asia/Shanghai" > /etc/timezone \
|
||||
&& mkdir -p /root/.ssh \
|
||||
&& ssh-keyscan $REPO_URL > /root/.ssh/known_hosts \
|
||||
&& git clone -b $JS_TOOL_BRANCH $JS_TOOL_URL $JD_DIR \
|
||||
&& cd ${JD_DIR}/ \
|
||||
&& bash jd.sh update \
|
||||
&& bash jd.sh panelon \
|
||||
&& npm install -g pm2 --registry=https://registry.npm.taobao.org \
|
||||
&& rm -rf /root/.npm
|
||||
WORKDIR $JD_DIR
|
||||
ENTRYPOINT bash $JD_DIR/docker/docker/docker-entrypoint.sh
|
17
docker/docker/docker-entrypoint.sh
Executable file
17
docker/docker/docker-entrypoint.sh
Executable file
@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo -e "\n======================== 2. 更新源代码 ========================\n"
|
||||
jd update
|
||||
echo
|
||||
|
||||
crontab /root/jd/config/crontab.list
|
||||
|
||||
jd panelon
|
||||
jd panelon
|
||||
|
||||
echo -e "容器启动成功...\n"
|
||||
|
||||
crond -f
|
||||
|
||||
exec "$@"
|
Reference in New Issue
Block a user