看到阿里雲提供了一套程式碼整合部署方案,嘗試搭建一個測試專案
1 開通服務
- 訪問雲效,根據引導建立基礎服務。
- 使用
codeup
建立基礎程式碼庫。(類似git
) - 使用流水線配置基礎部署流程。
2 流水線
- 選擇模版。(我是
php
) - 根據引導配置每個步驟。
2.1 源
- 直接引入在
codeup
上建立的程式碼庫。(預設選的阿里雲 code,然後提示升級,建立後再回來找不到倉庫了,提交工單才知道要選擇codeup
)
2.2 測試
- 使用預設配置
2.3 構建
- 使用預設配置
2.4 主機部署
- 使用預設配置
- 部署指令碼我沒用
https
,改成了ssh
3 本地配置
先嚐試在本地(windows
)初始化程式碼,發現需要支援多版本的ssh
3.1 ssh金鑰
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"
測試生成的 SSH Key
ssh -T git@gitee.com -i ~/.ssh/id_rsa_gitee_one # 連線成功提示 # Welcome to Gitee.com, gitee-user1!
配置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
將對應公鑰中的內容新增至
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 協議》,轉載必須註明作者和本文連結