Bitbucket 管道 - 是否可以在服务和使用该服务的步骤之间共享文件夹?
Bitbucket pipeline - Is it possible to share a folder between a service and the step that uses the service?
我刚开始接触 bitbucket 管道,我想了解如何在服务和使用该服务的步骤之间共享某些内容。
我有一个自动运行一些系统测试的工作管道,我正在创建一个新测试。该测试只是从浏览器下载文件并检查文件是否在特定文件夹中。为此,我使用了步骤中使用的一些服务。我有这样的东西 pipeline.yml 文件:
pipelines:
default:
- step:
...
script:
- exec system_tests
services:
- selenium_chrome
...
definitions:
services:
selenium_chrome:
image: selenium/standalone-chrome:4.0.0-beta-1-prerelease-20210128.
这是对我的场景的简化,但我认为这足以解释我遇到的问题。
测试从该步骤开始执行,测试完成后,我知道该文件存储在 selenium_chrome 容器的文件夹中。现在我想从步骤容器中检查文件是否存在。即基本上,我想从使用该服务的步骤访问 selenium_chrome 服务容器中的文件夹。
我做了很多尝试,但我认为最接近的尝试是在服务中使用卷,也许吧?我试过这样的事情:
definitions:
services:
selenium_chrome:
volumes:
- $BITBUCKET_CLONE_DIR/build/tmp/downloads:/build/tmp/downloads
image: selenium/standalone-chrome:4.0.0-beta-1-prerelease-20210128
但是,当我查看步骤容器的 tmp 文件夹时,找不到任何下载文件夹。
我还在使用相同目录的另一个配置文件中配置了 chrome 驱动程序 ('download.default_directory': '/build/tmp/downloads')。
有人可以帮助我了解我的误解或做错了什么吗?我可能在 .yml 文件中遗漏了什么?
提前致谢
最后,我们没有找到保留服务的方法,所以,对我们有用的解决方案是删除 selenium_chrome
服务,只添加 dockerization这进入脚本:
pipelines:
default:
- step:
...
script:
- mkdir -p tmp/tests_downloads
- docker run -d -p 4444:4444 -v $BITBUCKET_CLONE_DIR/tmp/tests_downloads:/tmp/tests_downloads selenium/standalone-chrome:89.0
- exec system_tests
services:
...
...
definitions:
services:
这不是我想要的(理想情况下我们希望将 docker 层保留为服务),但它确实有效。
我刚开始接触 bitbucket 管道,我想了解如何在服务和使用该服务的步骤之间共享某些内容。
我有一个自动运行一些系统测试的工作管道,我正在创建一个新测试。该测试只是从浏览器下载文件并检查文件是否在特定文件夹中。为此,我使用了步骤中使用的一些服务。我有这样的东西 pipeline.yml 文件:
pipelines:
default:
- step:
...
script:
- exec system_tests
services:
- selenium_chrome
...
definitions:
services:
selenium_chrome:
image: selenium/standalone-chrome:4.0.0-beta-1-prerelease-20210128.
这是对我的场景的简化,但我认为这足以解释我遇到的问题。
测试从该步骤开始执行,测试完成后,我知道该文件存储在 selenium_chrome 容器的文件夹中。现在我想从步骤容器中检查文件是否存在。即基本上,我想从使用该服务的步骤访问 selenium_chrome 服务容器中的文件夹。
我做了很多尝试,但我认为最接近的尝试是在服务中使用卷,也许吧?我试过这样的事情:
definitions:
services:
selenium_chrome:
volumes:
- $BITBUCKET_CLONE_DIR/build/tmp/downloads:/build/tmp/downloads
image: selenium/standalone-chrome:4.0.0-beta-1-prerelease-20210128
但是,当我查看步骤容器的 tmp 文件夹时,找不到任何下载文件夹。
我还在使用相同目录的另一个配置文件中配置了 chrome 驱动程序 ('download.default_directory': '/build/tmp/downloads')。
有人可以帮助我了解我的误解或做错了什么吗?我可能在 .yml 文件中遗漏了什么?
提前致谢
最后,我们没有找到保留服务的方法,所以,对我们有用的解决方案是删除 selenium_chrome
服务,只添加 dockerization这进入脚本:
pipelines:
default:
- step:
...
script:
- mkdir -p tmp/tests_downloads
- docker run -d -p 4444:4444 -v $BITBUCKET_CLONE_DIR/tmp/tests_downloads:/tmp/tests_downloads selenium/standalone-chrome:89.0
- exec system_tests
services:
...
...
definitions:
services:
这不是我想要的(理想情况下我们希望将 docker 层保留为服务),但它确实有效。