如何在GitLab CI中挂载卷并将文件复制到Docker容器中?
解决GitLab CI中Newman测试的文件访问问题
你其实不需要手动配置卷挂载——GitLab CI的Docker Runner会自动把你的整个Git仓库克隆到容器的工作目录里,所以直接用仓库内的相对路径就能访问postmantests目录下的文件,根本不用额外复制操作。
正确的配置示例
stages: - test_dev Postman_Tests_Dev: stage: test_dev image: name: postman/newman entrypoint: ["/bin/sh", "-c"] script: - newman --version # 直接用仓库内的相对路径访问测试文件 - newman run ./postmantests/myjsontest.json # 如果要运行目录下所有测试文件,可以用通配符批量执行 # - newman run ./postmantests/*.json tags: - docker-azure
为什么你的原有尝试不对?
你写的volume: postmantests:/etc/newman是错误的语法,而且完全没必要:
- GitLab CI的Docker执行环境默认会将仓库的根目录作为容器的工作目录,所有仓库文件都已经同步到容器中了
- 手动配置卷的方式在这里不适用,反而会打乱Runner的默认挂载逻辑
额外实用提示
如果你的测试需要环境变量(比如API地址、密钥),可以通过GitLab项目的CI/CD变量配置,然后在newman run命令里用--env-var参数引用,或者直接在Postman测试文件里使用环境变量占位符,GitLab会自动注入这些变量。
内容的提问来源于stack exchange,提问作者dot
相关产品推荐
相关产品推荐

