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

GitLab CI流水线运行Postman Docker镜像提示文件不存在的问题排查

问题原因

你在docker:20.10.14容器内执行docker run时,调用的是GitLab Runner主机的Docker守护进程。此时$CI_PROJECT_DIR是job容器内部的项目路径,而主机上并没有这个路径,导致挂载的/etc/newman目录为空,newman自然找不到集合文件。

解决方案

方案1:直接使用postman/newman作为job镜像(最推荐)

不需要嵌套Docker,直接在job容器中运行newman命令,项目目录会自动挂载到job容器内,可直接访问集合文件:

postman:
    image: postman/newman
    stage: schedule
    only: 
        - schedules
    script:
        - newman run postman_collection.json

方案2:指定集合文件的完整路径

直接指定newman容器内的完整挂载路径,绕开工作目录的问题:

postman:
    image: docker:20.10.14
    stage: schedule
    only: 
        - schedules
    script:
        - docker run -t -v $CI_PROJECT_DIR:/etc/newman postman/newman run /etc/newman/postman_collection.json

方案3:通过--volumes-from共享job容器的挂载卷

利用job容器的卷挂载,让newman容器直接访问job容器内的项目文件:

postman:
    image: docker:20.10.14
    stage: schedule
    only: 
        - schedules
    script:
        # docker executor下,job容器的hostname就是容器ID
        - CONTAINER_ID=$(hostname)
        - docker run -t --volumes-from $CONTAINER_ID postman/newman run $CI_PROJECT_DIR/postman_collection.json

方案4:设置newman容器的工作目录

通过-w参数将newman容器的工作目录设为挂载路径,让run命令在该目录下查找文件:

postman:
    image: docker:20.10.14
    stage: schedule
    only: 
        - schedules
    script:
        - docker run -t -v $CI_PROJECT_DIR:/etc/newman -w /etc/newman postman/newman run postman_collection.json

内容的提问来源于stack exchange,提问作者Lawrence I. Siden

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:20:24