因为k8s与docker的工作原理不一样, 在容器内安装的依赖, 会因为k8s的重启而消失

所以, 把依赖等东西打包进原镜像就可以避免这个问题.

以下是Dockerfile文件,基于青龙2.11.3镜像

# 使用qinglong2.11.3作为基础镜像
FROM yanyuwangluo/qinglong:2.11.3


#设置pnpm环境变量
ENV PNPM_HOME="/root/.local/share/pnpm" \
    PATH="$PNPM_HOME:$PATH"


#设置工作路径
WORKDIR /ql

# 安装依赖项

# 安装Linux依赖
RUN apk --no-cache add -f \
    g++ \
    gcc \
    python3 \
    zlib-dev \
    jpeg-dev \
    python3-dev \
    musl-dev \
    freetype-dev \
    build-base \
    cairo-dev \
    pango-dev \
    giflib-dev \
    gtk+2.0 \
    pixman-dev \
    pangomm-dev \
    libjpeg-turbo-dev && \
    rm -rf /var/cache/apk/* &&\
# 安装python3依赖
    pip3 install --upgrade pip && \
    pip install \
    requests \
    pycryptodomex \
    json5 \
    qrcode==6.1 \
    Telethon==1.24.0 \
    Pillow==8.1.2 \
    python-socks==1.2.4 \
    async_timeout==3.0.1 \
    redis \
    wget \
    bs4 \
    prettytable==2.1.0 \
    PyExecJS && \
    pip3 cache purge && \
# 安装nodejs依赖
    npm config set registry http://registry.npmmirror.com/ && \
    npm config set sass_binary_site http://npmmirror.com/mirrors/node-sass/ && \
    npm install npm -g && \
    npm install -g -S --force \
    js-base64 \
    qrcode-terminal \
    silly-datetime \
    png-js \
    date-fns \
    axios \
    crypto-js \
    ts-md5 \
    tslib \
    @types/node \
    requests \
    tough-cookie \
    jsdom \
    download \
    tunnel \
    fs \
    ws \
    form-data \
    ts-node \
    typescript \
    ds \
    moment \
    global-agent \
    dotenv \
    got \
    md5 \
    require \
    jieba \
    prettytable \
    json5 \
    cairo \
    request \
    node-gyp \
    node-pre-gyp \
    canvas \
    https-proxy-agent \
    --build-from-source && \
    npm cache clean --force && \
    pnpm config set registry https://registry.npmmirror.com/ && \
    pnpm config set sass_binary_site http://npmmirror.com/mirrors/node-sass/


WORKDIR /ql
#运行原镜像启动脚本
ENTRYPOINT ["./docker/docker-entrypoint.sh"]

已经创建好可直接拉库的chendarkdevil/qinglong:2.11.3