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

Comments NOTHING