Buildkite Docker Cypress-工件删除权限

Buildkite Docker Cypress-工件删除权限,docker,docker-compose,cypress,buildkite,Docker,Docker Compose,Cypress,Buildkite,我正在为CI使用buildkite并运行测试,在删除工件文件夹时遇到问题。 在我的buildkite管道中,我迈出了清理git回购的第一步 git clean -fxdq -e node_modules/ 在没有柏树测试的情况下也能正常工作。现在我得到: 警告:无法删除e2e/工件/屏幕截图:权限被拒绝 警告:无法删除e2e/artifacts/video/test.spec.js.mp4:权限被拒绝 我正在使用docker compose(带有buildkite插件)和docker dock

我正在为CI使用buildkite并运行测试,在删除工件文件夹时遇到问题。 在我的buildkite管道中,我迈出了清理git回购的第一步

git clean -fxdq -e node_modules/
在没有柏树测试的情况下也能正常工作。现在我得到:

警告:无法删除e2e/工件/屏幕截图:权限被拒绝

警告:无法删除e2e/artifacts/video/test.spec.js.mp4:权限被拒绝

我正在使用docker compose(带有buildkite插件)和docker

docker-compose.yml:

version: '3.8'
services:
  cypress:
    image: my-cypress:latest

    build:
      context: .
      dockerfile: Dockerfile.cypress

    # This handles other weirdness with Docker and Electron
    ipc: host

    environment:
      - VERSION
      - SPECS
      - BUILDKITE_BUILD_ID
      - CYPRESS_PASSWORD
      - CYPRESS_EMAIL
      - CYPRESS_PROJECT_NAME

    volumes:
      - ./artifacts/video/:/opt/e2e/cypress/videos/
      - ./artifacts/screenshots/:/opt/e2e/cypress/screenshots/

    command: "yarn cypress:run:test"
我的dockerfile:

FROM cypress/base:14.10.1

# This helps to clean up the console output
ENV CI=1

# Proceed with installing Node dependencies
RUN mkdir -p /opt/e2e/
WORKDIR /opt/e2e/

COPY package.json /opt/e2e/
COPY yarn.lock /opt/e2e/

RUN yarn install --frozen-lockfile

# Copy over application code and installed node_modules
COPY . /opt/e2e
WORKDIR /opt/e2e

# Verify Cypress installation worked
RUN ./node_modules/.bin/cypress verify
和管道.yml

  steps:
    - label: ':npm: :docker: Step 2'
      plugins:
        - docker-compose#v3.7.0:
            run: cypress
            config: e2e/docker-compose.e2e.yml
            # propagate-uid-gid: true
            env:
              VERSION: '$BUILDKITE_BUILD_ID'
              SPECS: '$SPECS'
              BASE_URL: '$BASE_URL,'
              CYPRESS_PASSWORD: '$CYPRESS_PASSWORD'
              CYPRESS_EMAIL: '$CYPRESS_EMAIL'
              CYPRESS_PROJECT_NAME: '$CYPRESS_PROJECT_NAME'
        - artifacts#v1.3.0:
            upload: ['./e2e/artifacts/*', './e2e/artifacts/**/*']
我尝试了什么:

设置
传播uid gid
标志。错误地打破了我的柏树:

已安装cypress npm包,但缺少cypress二进制文件。 我们希望二进制文件安装在这里:/.cache/Cypress/3.8.0/Cypress/Cypress

我尝试设置
CYPRESS\u CACHE\u文件夹
env变量,但没有成功。然后我也有纱线缓存的问题

警告:跳过首选缓存文件夹“/.cache/thread”,因为它不可写

主进程中发生JavaScript错误
未捕获异常:
错误:无法获取“appData”路径
在App.l._setDefaultAppPath(electron/js2c/browser_init.js:5:1420)
反对。(electron/js2c/browser_init.js:205:2348)
在Object../lib/browser/init.ts(electron/js2c/browser_init.js:205:3577)
在网页上需要(electron/js2c/browser\u init.js:1:128)
在electron/js2c/browser_init.js:1:1200
在electron/js2c/browser_init.js:1:1267
在NativeModule.compile(internal/bootstrap/loaders.js:287:5)
在NativeModule.compileForPublicLoader(internal/bootstrap/loaders.js:222:8)
在loadNativeModule(内部/modules/cjs/helpers.js:23:9)
at模块加载(内部/modules/cjs/loader.js:698:15)
我花了很多时间在这上面,我完全迷路了。我不是docker专家,所以可能我遗漏了什么。谢谢你的帮助

有没有办法在上传后立即轻松删除工件

A JavaScript error occurred in the main process
Uncaught Exception:
Error: Failed to get 'appData' path
    at App.l._setDefaultAppPaths (electron/js2c/browser_init.js:5:1420)
    at Object.<anonymous> (electron/js2c/browser_init.js:205:2348)
    at Object../lib/browser/init.ts (electron/js2c/browser_init.js:205:3577)
    at __webpack_require__ (electron/js2c/browser_init.js:1:128)
    at electron/js2c/browser_init.js:1:1200
    at electron/js2c/browser_init.js:1:1267
    at NativeModule.compile (internal/bootstrap/loaders.js:287:5)
    at NativeModule.compileForPublicLoader (internal/bootstrap/loaders.js:222:8)
    at loadNativeModule (internal/modules/cjs/helpers.js:23:9)
    at Module._load (internal/modules/cjs/loader.js:698:15)