Skip to content

[FEATURE] Docker 国内部署依赖下载慢,418无法正常访问的通用解决方案,亲测可行 #103

@tibos-hub

Description

@tibos-hub

功能描述 / Feature Description

国内网络Docker 部署,优化方案
1.建议手动下载chrome,约177M,国内下载巨慢,本地下载后,上传到项目根目录
https://storage.googleapis.com/chrome-for-testing-public/148.0.7778.96/linux64/chrome-linux64.zip
2.修改Dockerfile 文件, 下面是本人优化后的文件(主要是替换源,加快依赖的下载,如果没有下载慢的问题,该操作可以忽略)

FROM python:3.10-slim

设置工作目录

WORKDIR /app

设置构建时代理参数

ARG HTTP_PROXY
ARG HTTPS_PROXY

设置环境变量

ENV HTTP_PROXY=${HTTP_PROXY}
ENV HTTPS_PROXY=${HTTPS_PROXY}
ENV PYTHONUNBUFFERED=1

删除所有现有源配置,写入腾讯云源

RUN rm -rf /etc/apt/sources.list.d/*
&& echo 'deb https://mirrors.tencent.com/debian/ bookworm main contrib non-free' > /etc/apt/sources.list
&& echo 'deb https://mirrors.tencent.com/debian-security/ bookworm-security main contrib non-free' >> /etc/apt/sources.list
&& echo 'deb https://mirrors.tencent.com/debian/ bookworm-updates main contrib non-free' >> /etc/apt/sources.list

安装系统依赖

RUN echo 'deb https://mirrors.tencent.com/debian/ bullseye main contrib non-free' > /etc/apt/sources.list
&& echo 'deb https://mirrors.tencent.com/debian-security/ bullseye-security main contrib non-free' >> /etc/apt/sources.list
&& echo 'deb https://mirrors.tencent.com/debian/ bullseye-updates main contrib non-free' >> /etc/apt/sources.list
&& apt-get update
&& apt-get install -y --no-install-recommends
libasound2
libatk-bridge2.0-0
libatk1.0-0
libatspi2.0-0
libcups2
libdrm2
libgbm1
libgtk-3-0
libnspr4
libnss3
libpango-1.0-0
libx11-6
libxcb1
libxcomposite1
libxdamage1
libxext6
libxfixes3
libxkbcommon0
libxrandr2
libxrender1
libxshmfence1
libxv1
xdg-utils
wget
curl
unzip
&& apt-get clean
&& rm -rf /var/lib/apt/lists/*

RUN mkdir -p /root/.pip &&
echo '[global]' > /root/.pip/pip.conf &&
echo 'index-url = https://mirrors.aliyun.com/pypi/simple' >> /root/.pip/pip.conf &&
echo 'trusted-host = mirrors.aliyun.com' >> /root/.pip/pip.conf

复制依赖文件

COPY requirements.txt .

安装Python依赖

RUN pip install --no-cache-dir -r requirements.txt

安装Playwright浏览器

#RUN playwright install chromium
#RUN playwright install-deps chromium

#RUN pip install --no-cache-dir playwright
#RUN playwright install chromium
#RUN pip install playwright

#ENV PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright
#RUN playwright install --with-deps chromium

RUN pip install --no-cache-dir playwright
COPY chrome-linux64.zip /tmp/chrome-linux64.zip
RUN unzip -q /tmp/chrome-linux64.zip -d /ms-playwright/ && rm /tmp/chrome-linux64.zip
ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright

复制MCP服务器文件

COPY lanhu_mcp_server.py .

创建数据和日志目录

RUN mkdir -p /app/data /app/logs

清理代理环境变量

ENV HTTP_PROXY=
ENV HTTPS_PROXY=

暴露端口

EXPOSE 8000

运行MCP服务器(使用HTTP传输)

CMD ["python", "lanhu_mcp_server.py"]

3.修改环境变量配置

蓝湖 Cookie(必需) 切记,这里是418的重灾区,切记不要有"", 不然容器里获取不到

✅️正确做法
LANHU_COOKIE=_ga=GA1.1.81293506.1755512453;.....
❌️错误做法
LANHU_COOKIE="_ga=GA1.1.81293506.1755512453;....."

环境变量设置好了之后,重启容器不会生效,建议重新创建容器,或者在容器里修改环境变量

以下是提供测试的快捷命令
3.1 检查容器里环境变量是否存在
docker exec lanhu-mcp env | grep LANHU_COOKIE

3.2 创建容器,并手动指定环境变量
docker run -d
--name lanhu-mcp
-p 8000:8000
-e LANHU_COOKIE="新的cookie值"
--env-file /home/docker/lanhu-mcp/.env
-v /home/docker/lanhu-mcp/data:/app/data
-v /home/docker/lanhu-mcp/logs:/app/logs
--restart unless-stopped
lanhu-mcp-server

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions