使用阿里雲-雲效部署程式碼

秦曉武發表於2020-12-23

看到阿里雲提供了一套程式碼整合部署方案,嘗試搭建一個測試專案

1 開通服務

  • 訪問雲效,根據引導建立基礎服務。
  • 使用codeup建立基礎程式碼庫。(類似git
  • 使用流水線配置基礎部署流程。

2 流水線

  • 選擇模版。(我是php
  • 根據引導配置每個步驟。

2.1 源

  • 直接引入在codeup上建立的程式碼庫。(預設選的阿里雲 code,然後提示升級,建立後再回來找不到倉庫了,提交工單才知道要選擇codeup

2.2 測試

  • 使用預設配置

2.3 構建

  • 使用預設配置

2.4 主機部署

  • 使用預設配置
  • 部署指令碼我沒用https,改成了ssh

3 本地配置

先嚐試在本地(windows)初始化程式碼,發現需要支援多版本的ssh

3.1 ssh金鑰

  1. git bash 中輸入以下命令,生成多個金鑰,注意SSH Key 不能使用預設的檔名id_rsa,否則預設的金鑰檔案:

    ssh-keygen -t rsa -f ~/.ssh/id_rsa_gitee_one -C "gitee-user1@email.com"
    ssh-keygen -t rsa -f ~/.ssh/id_rsa_github_two -C "github-user2@email.com"
  2. 測試生成的 SSH Key

    ssh -T git@gitee.com -i ~/.ssh/id_rsa_gitee_one
    # 連線成功提示
    # Welcome to Gitee.com, gitee-user1!
  3. 配置config檔案

    # ~/.ssh/config 配置多個git的ssh-key
    # 第一個SSH Key
    Host gitee.com
     HostName gitee.com
     IdentityFile C:\\Users\\Administrator\\.ssh\\id_rsa_gitee_one
     PreferredAuthentications publickey
    # 第二個SSH Key
    Host two.github.com
     HostName github.com
     IdentityFile C:\\Users\\Administrator\\.ssh\\id_rsa_github_two
     PreferredAuthentications publickey
  4. 將對應公鑰中的內容新增至codeup中。

3.2 程式碼

根據laravel安裝文件進行程式碼初始化。然後提交到codeup

4 執行流水線

測試和構建都沒問題,部署一直報錯。
對於官方示例提供的指令碼:

export GIT_REPO=$(echo ${GIT_REPO} | base64 -d)
export GIT_BRANCH=$(echo ${GIT_BRANCH}| base64 -d)
export COMMIT_ID=$(echo ${COMMIT_ID} | base64 -d)
echo ${GIT_REPO}
echo ${GIT_BRANCH}
echo ${COMMIT_ID}
git clone ${GIT_REPO} -b ${GIT_BRANCH}

提示沒有許可權,最後直接在ecs上進行初始化(已經通過寶塔建立了網站基礎目錄):

# 進入非空目錄,假設是 /workdir/proj1
git clone --no-checkout https://git.oschina.net/NextApp/platform.git tmp
mv tmp/.git .   #將 tmp 目錄下的 .git 目錄移到當前目錄
rmdir tmp
git reset --hard HEAD

手寫同步指令碼:

cd 網站目錄
git pull

網站初始化

  • composer global require laravel/installer
  • composer update
    這裡出現錯誤Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
    因為初始化git的時候,我把config目錄移除了,單獨ftp提交上去再update就好了
  • 訪問網站。
    could not be opened in append mode: failed to open stream: Permission denied
    因為部署時用的root賬戶,手動把對應資料夾許可權改成www

成功

使用阿里雲-雲效部署程式碼

參考資料:

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章