You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Dockerfile部署Pelican站点至Google Cloud Run失败求助

Pelican站点容器化部署Cloud Run问题解决

1. 核心错误纠正

你错误地将本地运行容器的命令docker run -d -p 8080:80 website设置为Cloud Run的容器启动参数,这完全不符合Cloud Run的运行逻辑——Cloud Run会直接执行镜像内置的启动命令,不需要额外传入docker run指令。部署时清空所有容器参数即可解决这个错误。

2. 适配Cloud Run端口要求

Cloud Run强制要求容器监听8080端口,而你当前使用的httpd镜像默认监听80端口,这是导致启动探针失败的原因。修改Dockerfile调整端口配置:

修改后的Dockerfile

# 构建阶段:生成Pelican静态文件
FROM python:3.10-slim-bullseye AS pelican

RUN apt update && apt install -y --no-install-recommends git make \
    && rm -rf /var/lib/apt/lists/*

ADD requirements.txt requirements.txt
RUN python -m pip install --no-cache-dir -r requirements.txt

ENV PYTHONDONTWRITEBYTECODE 1

WORKDIR /website 
COPY . /website/

# 生成静态站点文件
RUN pelican

# 运行阶段:调整httpd端口适配Cloud Run
FROM httpd:2.4.52-alpine
# 复制构建好的静态文件到httpd根目录
COPY --from=pelican /website/output/ /usr/local/apache2/htdocs/
# 修改httpd配置,将监听端口从80改为8080
RUN sed -i 's/Listen 80/Listen 8080/' /usr/local/apache2/conf/httpd.conf
# 暴露Cloud Run要求的8080端口
EXPOSE 8080

3. 重新部署流程

  • 重新构建镜像:docker build -t website .
  • 推送镜像到Artifact Registry(按你之前的步骤执行)
  • 部署到Cloud Run时:
    • 在部署配置中设置容器端口为8080
    • 保持容器启动命令/参数为空(httpd镜像默认会自动启动服务)

4. 验证结果

部署完成后,直接访问Cloud Run提供的默认URL即可正常访问你的Pelican站点。

内容的提问来源于stack exchange,提问作者danni114

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:16:03