使用阿里云-云效部署代码

看到阿里云提供了一套代码集成部署方案,尝试搭建一个测试项目

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 协议》,转载必须注明作者和本文链接
秦晓武
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!