This commit is contained in:
root
2020-05-07 09:05:20 +08:00
commit e9d164c703
86 changed files with 11584 additions and 0 deletions

63
docker/docker-bot/Dockerfile Executable file
View 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

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

View 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 "$@"