我们有一个 CI&CD 流程,其中包含一个 dockerfile,用于通过 bitbucket 管道部署到 laravel vapor 环境,该管道由 4 个基本步骤组成:
- 安装
- 建造
- 测试
- 部署
有趣的是,我们顺利通过了 3 个步骤。
我们可以在本地环境的第 4 步运行相同的命令,然后部署到任何环境都不会出现任何问题。
但是,当我们尝试通过 Bitbucket Pipeline 部署它时(它已经在 10 天前工作,但现在已损坏)我们失败并显示错误消息
In ClassLoader.php line 571:
include(/opt/atlassian/pipelines/agent/build/.vapor/build/app/vendor/compos
er/../composer/composer/src/Composer/Console/GithubActionError.php): Failed
to open stream: No such file or directory
在作曲家安装命令。
我们当前的管道配置:
image: lorisleiva/laravel-docker:8.0
definitions:
steps:
- step: &Install
name: Install
script:
- npm ci
- composer install
- composer dump-autoload
artifacts:
- node_modules/**
- vendor/**
- step: &Build
name: Build
script:
- npm run prod
artifacts:
- public/**
- vendor/**
- step: &Test
name: Test & Lint
script:
- php -d memory_limit=4G vendor/bin/phpstan
- vendor/bin/phplint ./ --exclude=vendor
- vendor/bin/phpunit --coverage-text --colors=never
caches:
node: node_modules
composer: vendor
public: public
pipelines:
branches:
release/test:
- step: *Install
- step: *Build
- step: *Test
- step:
name: Release to Vapor [test]
services:
- docker
script:
- COMMIT_MESSAGE=`git log --format=%B -n 1 $BITBUCKET_COMMIT`
- vendor/bin/vapor deploy test --commit="$BITBUCKET_COMMIT" --message="$COMMIT_MESSAGE"
我们的蒸汽测试 dockerfile
FROM laravelphp/vapor:php80
COPY . /var/task
和我们的蒸汽配置:
build:
- "COMPOSER_MIRROR_PATH_REPOS=1 composer install --no-dev"
- "php artisan event:cache"
- "npm ci && npm run prod && rm -rf node_modules"
deploy:
- "php artisan migrate"
- "php artisan lighthouse:clear-cache"
试图删除 bitbucket 管道配置上的作曲家缓存。阅读composer cache not working on bitbucket pipeline build和https://github.com/lorisleiva/laravel-docker/issues/67但仍然不知道为什么会这样,所以任何帮助或建议都非常受欢迎。