亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在使用 Gitlab CI 遷移到服務器之前使用 Composer 安裝依賴項

如何在使用 Gitlab CI 遷移到服務器之前使用 Composer 安裝依賴項

PHP
慕工程0101907 2022-11-04 16:24:37
我有一個帶有 .php 文件的 Gitlab 存儲庫,它通過帶有 Gitlab CI 的 rsync 命令部署:- rsync -avz -e "ssh -i ~/.ssh/id_rsa -p $SERVER_PORT" /builds/account-name/group-name/project-name/* $SERVER_USER@$SERVER_HOST/$SERVER_DOMAIN/builds/account-name/group-name/project-name/*我們存儲庫的根在哪里。現在我想在將存儲庫傳輸到我們的服務器之前添加一個安裝 Composer 依賴項的步驟,但我不知道如何在部署階段獲取已安裝的依賴項。composer.json 文件位于/1/src/:build我在部署腳本工作之前添加的步驟,如下所示:build_master:  image: composer  stage: build  only:    - dev  script:    - composer install -d /builds/account-name/group-name/project-name/1/src/ --ignore-platform-reqs  artifacts:    paths:      - vendor/    expire_in: 30 minutesGitlab 中的日志顯示所有軟件包都已安裝,但是當它嘗試為作業上傳工件時,這顯示:Uploading artifacts for successful job Uploading artifacts... WARNING: vendor/: no matching files                 ERROR: No files to upload                           Job succeeded我希望作曲家將所有內容安裝到vendor文件夾中,Gitlab 將其存儲在它的工件中。在部署步驟中,我正在考慮添加另一個像上面那樣的 rsync 行,并將源文件夾更改vendor/為$SERVER_USER@$SERVER_HOST/$SERVER_DOMAIN/1/src/vendor.我無法弄清楚這哪里出錯了。也許它與 artifact-vendor 文件夾也需要相對于有關1/src/,我想知道我是否真的需要部署腳本中的兩條 rsync 行,而不是將作曲家包安裝到 /builds/ 中的正確文件夾中.../project-name/ 文件夾,因此只需要一個 rsync 操作。
查看完整描述

1 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

從 Gitlab 的文檔頁面

文件和目錄的所有路徑都相對于在構建期間克隆的存儲庫。

并且artifacts:paths也相對于您的項目構建的根目錄。

在運行 composer in 時,將創建目錄1/src,該目錄是您希望從中上傳資產的路徑。vendor1/src/vendor

您的工作配置將是:

build_master:
  # ...
  script:
    - composer install -d 1/src --ignore-platform-reqs
  artifacts:
    paths:
      - 1/src/vendor

也就是說,composer install如果它vendor是應該在的目錄,那么在項目的根目錄下運行是沒有問題的。

請記住,為了優化傳輸,您還可以在構建過程中添加額外的腳本行來壓縮您的依賴項目錄。


查看完整回答
反對 回復 2022-11-04
  • 1 回答
  • 0 關注
  • 99 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號