BitBucket CI/CD 管道 - 在测试中更改文件权限失败 Bitbucket 管道

BitBucket CI/CD pipeline - changing file permissions in a test fails in bitbucket pipeline

提问人:Ste 提问时间:11/14/2023 更新时间:11/19/2023 访问量:22

问:

我有一个测试,以确保应用程序在无法访问文件时提供正确的错误。为此,测试会更改文件权限,即运行应用程序并检查错误。

像这样:

public void permissions() {
  String file = prepareFiles(); // let's say this creates a file /tmp/myfiles/filetocheck

  Path path = Paths.get(file).getParent();
  Files.setPosixFilePermissions(path, PosixFilePermissions.fromString("---------"));

  MyApp.main();

  thenLogContains("no access to " + file + ": java.nio.file.AccessDeniedException")
}

它在本地工作,但当它在 BitBucket 管道中运行时,它会失败,因为权限尚未更改。有没有人遇到过同样的问题?有什么解决办法吗?

cicd bitbucket-pipelines

评论


答:

1赞 Ste 11/19/2023 #1

对于像我这样的初学者:问题只是 docker 容器以 root 身份运行,因此即使更改权限,文件仍然可以从 maven 读取。

这篇文章指出了如何通过创建一个新用户并以该用户身份运行 maven 来解决问题。