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

Docker镜像中Python脚本在GitLab CI执行时找不到文件的问题

解决GitLab CI中Python脚本找不到的问题

问题描述

自定义Docker基础镜像中已安装Python环境及依赖,且复制了verification.py脚本,但在GitLab CI使用该镜像运行脚本时,出现如下错误:

python3: can't open file 'publication_verification.py': [Errno 2] No such file or directory

排查与修复步骤

1. 核对脚本文件名匹配度

报错指向的是publication_verification.py,但你提供的Dockerfile和.gitlab-ci.yml中使用的是verification.py,需先确认:

  • 本地实际脚本文件名是否为publication_verification.py?若是,同步修改Dockerfile的COPY命令与CI脚本的执行命令
  • 若为CI执行时的笔误,修正.gitlab-ci.yml中的脚本名称

2. 确保CI作业的工作目录正确

Dockerfile中设置了WORKDIR /app/,脚本被复制到该目录,但GitLab CI默认会切换到项目仓库根目录运行作业,导致无法找到/app下的脚本。可通过两种方式修复:

  • 在CI脚本中先切换到/app目录:
    script:
      - cd /app
      - python3 --version
      - python3 verification.py
    
  • 直接使用脚本的绝对路径执行:
    script:
      - python3 --version
      - python3 /app/verification.py
    

3. 验证基础镜像是否包含目标脚本

重新构建基础镜像后,手动运行镜像检查/app目录:

docker run -it --rm image:base:0.1 ls /app

如果镜像中没有verification.py,需确认构建镜像时,该脚本处于Docker构建上下文范围内(与Dockerfile同目录或子目录),否则COPY命令无法复制文件。

4. 清理Dockerfile中的冗余空格

Dockerfile里的CMD命令存在多余空格:CMD [ "python3 ", "./verification.py"],建议修正为标准格式(不影响CI执行,但符合最佳实践):

CMD ["python3", "./verification.py"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:50:33