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