From 3334bee1597a1f0907a0a0ecc0e46be01c00253b Mon Sep 17 00:00:00 2001 From: "yifeng.wang" <3038880699@qq.com> Date: Mon, 17 Mar 2025 17:23:54 +0800 Subject: [PATCH] update dockefile to en --- .container/Dockerfile | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/.container/Dockerfile b/.container/Dockerfile index 70a18c3..ca74882 100644 --- a/.container/Dockerfile +++ b/.container/Dockerfile @@ -1,6 +1,6 @@ FROM python:3.10-slim -# 设置环境变量 +# Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_NO_CACHE_DIR=0 \ @@ -10,53 +10,50 @@ ENV PYTHONDONTWRITEBYTECODE=1 \ DEBIAN_FRONTEND=noninteractive \ PATH="/app/.venv/bin:$PATH" -# 设置工作目录 +# Set working directory WORKDIR /app -# 安装系统依赖(合并为一个RUN命令减少层数) +# Install system dependencies (combine into one RUN command to reduce layers) RUN apt-get update && apt-get install -y --no-install-recommends \ curl git ffmpeg libsm6 libxext6 xvfb xauth x11-utils \ build-essential python3-dev vim\ && apt-get clean \ && rm -rf /var/lib/apt/lists/* -# 安装uv工具 +# Install uv tool RUN pip install uv -# 复制构建项目文件 +# Copy project build files COPY pyproject.toml . COPY README.md . -# 如果README.md不存在则创建 -RUN if [ ! -f "README.md" ]; then echo -e "# OWL Project\n\n这是OWL项目的Docker环境。" > README.md; fi +# Create README.md if it doesn't exist +RUN if [ ! -f "README.md" ]; then echo -e "# OWL Project\n\nThis is the Docker environment for the OWL project." > README.md; fi -# 创建虚拟环境并安装依赖 +# Create virtual environment and install dependencies RUN uv venv .venv --python=3.10 && \ . .venv/bin/activate && \ uv pip install -e . -# 复制运行项目文件 +# Copy project runtime files COPY owl/ ./owl/ COPY licenses/ ./licenses/ COPY assets/ ./assets/ COPY README_zh.md . -COPY examples/ ./examples/ - - -# 创建启动脚本 +# Create startup script RUN echo '#!/bin/bash\nxvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" python "$@"' > /usr/local/bin/xvfb-python && \ chmod +x /usr/local/bin/xvfb-python -# 创建欢迎脚本 -RUN echo '#!/bin/bash\necho "欢迎使用OWL项目Docker环境!"\necho "Welcome to OWL Project Docker environment!"\necho ""\necho "可用的脚本 | Available scripts:"\nls -1 *.py | grep -v "__" | sed "s/^/- /"\necho ""\necho "运行示例 | Run examples:"\necho " xvfb-python run.py # 运行默认脚本 | Run default script"\necho " xvfb-python run_deepseek_example.py # 运行DeepSeek示例 | Run DeepSeek example"\necho ""\necho "或者使用自定义查询 | Or use custom query:"\necho " xvfb-python run.py \"你的问题 | Your question\""\necho ""' > /usr/local/bin/owl-welcome && \ +# Create welcome script +RUN echo '#!/bin/bash\necho "Welcome to the OWL Project Docker environment!"\necho "Welcome to OWL Project Docker environment!"\necho ""\necho "Available scripts:"\nls -1 *.py | grep -v "__" | sed "s/^/- /"\necho ""\necho "Run examples:"\necho " xvfb-python run.py # Run default script"\necho " xvfb-python run_deepseek_example.py # Run DeepSeek example"\necho ""\necho "Or use custom query:"\necho " xvfb-python run.py \"Your question\""\necho ""' > /usr/local/bin/owl-welcome && \ chmod +x /usr/local/bin/owl-welcome -# 设置工作目录 +# Set working directory WORKDIR /app/owl -# 添加健康检查 +# Add health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD python -c "import sys; sys.exit(0 if __import__('os').path.exists('/app/owl') else 1)" -# 容器启动命令 +# Container startup command CMD ["/bin/bash", "-c", "owl-welcome && /bin/bash"] \ No newline at end of file