使用阿里云-云效部署代码
看到阿里云提供了一套代码集成部署方案,尝试搭建一个测试项目
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/installercomposer 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 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: