从在 gitlab CI 中不起作用的资源读取文件

2023-12-14

我在使用以下命令在 gitlab CI 上运行测试时遇到错误:

./gradlew clean test

我正在使用测试容器来运行我的测试:https://www.testcontainers.org/modules/docker_compose/

这是我用来加载位于 src/test/resources 的 docker compose 文件的代码。

@ClassRule
public static DockerComposeContainer container = new DockerComposeContainer(new File(BaseServiceTest.class.getClassLoader().getResource("docker-compose.yml").getFile()));

我在本地运行时运行正常,在gitlab上运行ci时购买,出现以下错误:

{"timestamp":"2019-06-17T18:47:44.903Z","level":"ERROR","thread":"Test worker","logger":"docker[docker/compose:1.8.0]","message":"Log output from the failed container:\n.IOError: [Errno 2] No such file or directory: '/builds/xxxx/xxxx/xxxx-xxxx/src/test/resources/docker-compose.yml'\n","context":"default"}

以下是我的 gitlab-ci.yml 文件:

include:
  - project: 'xxxx/xxxx/sdlc'
    file: '/sdlc.yml'

variables:
  CONTAINER_NAME: xxxx-xxxx

test:
  stage: test
  image: registry.xxxx.com/xxxx-alpine-jdk8:v1_8_181
  script:
    - ls -la src/test/resources
    - ./gradlew clean test -i

在我的脚本中,我有ls -la src/test/resources我可以看到docker-compose.yml运行该脚本时的文件。不知道为什么它在运行代码时不可用。


基于测试容器文档here。 Gitlab CI 上的测试容器需要 DinD 服务

这里有一个例子:

# DinD service is required for Testcontainers
services:
  - docker:dind

variables:
  # Instruct Testcontainers to use the daemon of DinD.
  DOCKER_HOST: "tcp://docker:2375"
  # Improve performance with overlayfs.
  DOCKER_DRIVER: overlay2

test:
 image: gradle:5.0
 stage: test
 script: ./gradlew test
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从在 gitlab CI 中不起作用的资源读取文件 的相关文章

随机推荐

  • 联邦学习训练期间模型性能没有提高

    我已关注这个emnist教程创建图像分类实验 7 个类别 目的是使用 TFF 框架在 3 个数据孤岛上训练分类器 在训练开始之前 我使用以下命令将模型转换为 tf keras 模型tff learning assign weights to
  • openapi java 生成器将 LocalDate 序列化为数组而不是完整日期

    我在 spring 项目中使用 OpenAPI java 生成器 1 和 library resttemplate dateLibrary java8 从规范生成客户端 对于规范中的属性 targetDate type string for
  • 如何在 launch.json 的 Visual Studio Code 中反转 ${relativeFile} 中的反斜杠?

    我正在尝试配置 Windows Visual Studio Codelaunch json推出jest测试当前文件 获取我使用的路径 relativeFile 变量给出一个带有反斜杠的字符串 如下所示 src services some s
  • 为什么unique_ptr重载reset(pointer p = point())和reset(nullptr_t)?

    根据http en cppreference com w cpp memory unique ptr reset void reset pointer ptr pointer template lt class U gt void rese
  • exec() 和变量范围[重复]

    这个问题在这里已经有答案了 我确信这个问题已经被问过并得到回答 但我找不到具体的 我刚刚开始学习Python 但我不明白变量作用域问题 我已将问题简化为以下内容 Case 1 def lev1 exec aaa 123 print lev1
  • dart-server/angulardart 和 CORS 的问题

    我在我的服务器上使用 dart 并使用 angulardart 作为我的客户端 我可以通过我的服务器上的 http get 请求数据 工作正常 但我无法让 POST 工作 服务器 服务器使用 开始 https github com lviv
  • Grails 中按关联计数排序

    我有很多 Topic 对象 每个 Topic 有很多帖子 Post 如何根据帖子数对所有主题对象进行排序 您可以使用 size 函数在一个 HQL 查询中完成此操作 这样您就可以在一个查询中获取 Topic 实例 SELECT topic
  • 设置带有 a-frame 的加载动画

    我正在使用框架加载全景照片 示例代码如下 加载照片时会显示白屏 并持续几秒钟 这会造成糟糕的用户体验 我想在加载照片时添加加载动画 但找不到任何有用的指南 有人可以帮忙吗
  • 如何在没有 APD 的情况下覆盖现有的 PHP 函数?

    我想覆盖 PHP 中已经声明的几个函数 我正在使用的应用程序充满了遗留代码 包括对eval 因此仅替换代码中调用函数的标识符可能还不够 是否可以更改已声明的函数 而不使用高级 PHP 调试器在 PHP5 中 是的 通过使用 runkit f
  • angularjs表单输入建议

    我对 AngularJS 中的表单有疑问 经典 html 和 php 示例
  • 等待加载 angularjs 指令模板

    我想做的是推迟加载指令的 Angular js 模板 直到我真正需要它为止 我什至可能根本不需要它 有没有一种方法可以让我只在需要时加载指令模板 服务可以做到这一点吗 我的应用程序已经加载了很多指令模板 我想避免加载太多的东西 除非我需要它
  • 静态强制两个对象是从相同的(Int)“种子”创建的

    在我正在开发的库中 我有一个类似于以下内容的 API data Collection a Collection Seed etc type Seed Int newCollection Seed gt IO Collection a new
  • 在二进制文件中搜索字符串的代码

    前几天我问过这个问题 如何在二进制文件中查找 ANSI 字符串 我得到了一个非常好的answer 后来变成了一个更难的问题 输入迭代器可以用在需要前向迭代器的地方吗 现在确实不是我能理解的水平 我仍在学习 C 并且正在寻找一种在二进制文件中
  • socket.io 硬编码与动态连接 url

    为什么这里的大多数教程 示例和问题都使用本地 IP 或localhost 或任何其他硬编码路径 如下所示 var socket io connect http 127 0 0 1 3700 而不是简单地 var socket io conn
  • 在 WPF 应用程序中加密凭据

    在 WPF 应用程序中 我想提供典型的 记住我 选项来记住凭据并在下次启动应用程序时自动使用它们 使用单向哈希显然不是一个选择 虽然我可以存储凭据隔离存储 or 在注册表中 加密凭证时需要处理一个问题 如果我使用对称密钥加密算法 我需要将密
  • 检测 ThreadPool WorkItem 已完成/等待完成

    无论出于何种原因 ThreadPool s QueueWorkItem不返回IAsyncResult或工作项的其他一些句柄 这将允许等待它完成 有RegisterWait 方法 但你必须通过WaitHandle并且创建它们是昂贵的 参见IA
  • 检测 QlistWidget 中某行是否单击了某个项目

    我被赋予了这个简单的任务 我有这个列表 每当单击 ok 时我都会插入项目 void Form ok 处理该事件应该将新的列表项添加到列表中 现在我无法做的是检测是否在某行单击了某个项目 然后根据该操作执行某些操作 这是我的代码 includ
  • Angular Material2 单击时更改按钮颜色

    我想在单击按钮时更改材质 mat mini fab 按钮的颜色 我的尝试如下 但不起作用
  • html select(下拉)控制asp.net中的选定索引更改事件

    当值更改时 我试图将后端代码放入我的 html 选择控件 下拉列表 中 以触发后端方法 但我找不到该事件 我尝试了这样的方法
  • 从在 gitlab CI 中不起作用的资源读取文件

    我在使用以下命令在 gitlab CI 上运行测试时遇到错误 gradlew clean test 我正在使用测试容器来运行我的测试 https www testcontainers org modules docker compose 这