Spaces:
Paused
Paused
File size: 1,876 Bytes
97622a8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# 使用官方Ubuntu基础镜像
FROM ubuntu:22.04
# 设置构建参数
ARG TZ=Asia/Shanghai
ARG APP_USER=reader
ARG APP_HOME=/app
ARG JAVA_VERSION=17
# 设置环境变量
ENV TZ=${TZ} \
JAVA_HOME=/usr/lib/jvm/java-${JAVA_VERSION}-openjdk-amd64 \
APP_USER=${APP_USER} \
APP_HOME=${APP_HOME} \
VIRTUAL_ENV=${APP_HOME}/venv \
PATH="${APP_HOME}/venv/bin:${JAVA_HOME}/bin:${PATH}" \
LANG=C.UTF-8 \
LC_ALL=C.UTF-8
# 安装依赖并配置环境
RUN set -eux; \
# 设置时区
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \
echo $TZ > /etc/timezone; \
\
# 更新包索引并安装基本依赖
apt-get update; \
apt-get install -y --no-install-recommends \
openjdk-${JAVA_VERSION}-jdk \
ca-certificates \
curl \
unzip \
bash \
jq \
python3 \
python3-pip \
python3-venv; \
\
# 清理APT缓存以减小镜像体积
apt-get clean; \
rm -rf /var/lib/apt/lists/*; \
\
# 更新CA证书
update-ca-certificates; \
\
# 创建应用用户和目录
useradd -r -u 1000 -m -d $APP_HOME -s /bin/bash $APP_USER; \
chown -R $APP_USER:$APP_USER $APP_HOME; \
\
# 创建Python虚拟环境并安装依赖
python3 -m venv $VIRTUAL_ENV; \
pip install --no-cache-dir --upgrade pip setuptools wheel; \
pip install --no-cache-dir huggingface_hub
# 设置工作目录和用户
WORKDIR $APP_HOME
USER $APP_USER
# 复制并设置脚本权限
COPY --chown=${APP_USER}:${APP_USER} install_reader.sh ./
COPY --chown=${APP_USER}:${APP_USER} sync_data.sh ./
RUN chmod +x install_reader.sh sync_data.sh
# 暴露服务端口
EXPOSE 8080
# 使用exec形式的ENTRYPOINT以确保信号正确传递
ENTRYPOINT ["/bin/bash", "-c"]
CMD ["./sync_data.sh"] |