[英]gitlab CI/CD deploy laravel project
我想通過 ci/cd gitlab 部署我的 laravel 項目,我在部署我的項目時遇到問題。 我正在嘗試通過 gitlab CI 將我的 Laravel 項目部署到 cpanel。 我在這個項目中使用了部署程序包,但是當我將提交推送到 gitlab 並且管道失敗時。
當我將提交推送到 gitlab 並在我的管道錯誤圖像中出現此錯誤時出現此錯誤
這是我的 deploy.php 代碼
<?php
declare(strict_types=1);
return [
'default' => 'basic',
'strategies' => [
],
'hooks' => [
'start' => [
],
'build' => [
],
'ready' => [
'artisan:storage:link',
'artisan:view:clear',
'artisan:config:cache',
'artisan:migrate',
'artisan:horizon:terminate',
],
'done' => [
'fpm:reload',
],
'success' => [
],
'fail' => [
],
'rollback' => [
'fpm:reload',
],
],
'options' => [
'application' => env('APP_NAME', 'Laravel'),
'repository' => 'git@gitlab.com/mygroup/project.git',
'php_fpm_service' => 'php7.4-fpm',
],
'hosts' => [
'mywebsite.com' => [
'deploy_path' => '/home/sfd/public_html/nas',
'user' => 'deployer',
],
],
'localhost' => [
],
'include' => [
],
'custom_deployer_file' => false,
];
這是我的 gitlab-ci.yml 代碼
image: edbizarro/gitlab-ci-pipeline-php:7.4
stages:
- preparation
- building
- deploy
composer:
stage: preparation
script:
- php -v
- composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts --no-suggest
- cp .env.example .env
- php artisan key:generate
artifacts:
paths:
- vendor/
- .env
expire_in: 1 days
when: always
cache:
paths:
- vendor/
yarn:
stage: preparation
script:
- yarn --version
- yarn install --pure-lockfile
artifacts:
paths:
- node_modules/
expire_in: 1 days
when: always
.build-production-assets:
stage: building
dependencies:
- composer
- yarn
script:
- cp .env.example .env
- echo "PUSHER_APP_ID=$PUSHER_LIVE_APP_ID" >> .env
- echo "PUSHER_APP_KEY=$PUSHER_LIVE_APP_KEY" >> .env
- echo "PUSHER_APP_SECRET=$PUSHER_LIVE_APP_SECRET" >> .env
- yarn --version
- yarn run production --progress false
artifacts:
paths:
- public/css/
- public/js/
- public/fonts/
- public/mix-manifest.json
expire_in: 1 days
when: always
only:
- dev
.init_ssh_live: &init_ssh_live |
mkdir -p ~/.ssh
echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
deploy:
stage: deploy
script:
- *init_ssh_live
- php artisan deploy my-website.com -s upload
environment:
name: live
url: https://my-website.com
only:
- dev
作為本期的注釋
您收到的錯誤是因為 Deployer 無法通過 SSH 連接到您的服務器。
你得到命令“
rm -f /PATH/.dep/deploy.lock
”失敗。 因為這是部署過程中在主機上執行的第一個命令。
因此,請仔細檢查“將 SSH 密鑰與 GitLab CI/CD 一起使用”文檔,看看是否缺少以下步驟:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.