PHP容器型

概述

  • 容器是云时代重要标志之一,基于容器统一的交付标准,云开发平台支持存量应用部署到三种Serverless(FC、SAE、ASK)中的任一计算服务当中。云开发平台提供基于各种语言基础镜像,让存量应用以尽少的修改来完成部署,成为云原生Serverless应用。

    创建应用

  • 登录云开发平台,点击「免费云开发」,进入「快速开始」页面,点击「应用搬站」

image.png

  • 选择「PHP」,选择「容器型」,点击下一步,填写完信息之后,点击下一步,选择「计算服务」,开通项目所依赖的云服务,点击完成
  • 应用创建完成后,点击「在线开发部署」,等待代码仓库完成初始化,自动进入 CloudIDE页面

    详细信息

    平台在您创建云应用时,已经为您的项目创建的Codeup代码仓库,在代码仓库中内置了相应的镜像构建文件Dockerfile,以及平台在CI\CD时需要用到的配置文件,比如:prepare.sh、.workbench,README.md中会有当前搬站操作特别的配置说明,请务必仔细阅读。

    云开发平台默认提供了基于 registry.cn-shanghai.aliyuncs.com/aliyun_workbench/php7.2:1.0 镜像的搬站,该镜像继承自docker php-fpm 镜像,如果你的应用需要安装其他扩展,可参考官方镜像的操作,使用pecl或者docker-php-ext-install安装,具体可参考 文档

registry.cn-shanghai.aliyuncs.com/aliyun_workbench/php7.2:1.0 镜像默认安装了 pdo_mysql、sockets、redis模块,同时集成了composer命令

Cloud IDE中的prepare.sh是镜像构建准备脚本,一些镜像构建前一些参数需要准备。当前包含2部分:应用配置准备 和 容器启动命名准备,这里主要讲解容器启动配置:

  1. #!/bin/bash
  2. # prepare.sh文件为云开发平台构建用户自定义镜像的前置操作,处理环境变量以及启动命令等操作
  3. ## 此处不要改动 ------
  4. echo "#!/bin/bash" > start.sh
  5. # 设置环境变量
  6. index=0
  7. for item in $*
  8. do
  9. let index+=1
  10. if [ $index -ge 2 ]; then
  11. echo " ${item}"
  12. echo "export ${item}" >> start.sh
  13. fi
  14. done
  15. ## ------ 此处不要改动
  16. ## 自定义启动命令 ------
  17. cat >> start.sh <<EOF
  18. mkdir -p /tmp/log/nginx/
  19. mkdir -p /tmp/var/nginx/
  20. if [ ! -e '/code' ]; then
  21. ps aux | grep nginx | grep -v grep|awk -F ' ' '{print $2}' | xargs kill -9 >/dev/null 2>&1
  22. ps aux | grep php-fpm | grep -v grep|awk -F ' ' '{print $2}' | xargs kill -9 >/dev/null 2>&1
  23. fi
  24. echo "start php-fpm"
  25. php-fpm -c /usr/local/etc/php/php.ini-production -y /usr/local/etc/php-fpm.conf
  26. echo "start nginx"
  27. nginx -c /etc/nginx/nginx.conf
  28. # 查看日志
  29. tail -f /tmp/var/nginx/access.log /tmp/var/nginx/error.log
  30. EOF
  31. ## ------自定义命令

“自定义启动命令”注释块中的是启动命令,此处默认启动nginx以及php-fpm,同时实时输出nginx的访问日志(nginx的静态目录为当前项目的根目录,若要修改,可参考Readme.md 修改nginx.conf文件即可)。

如果你需要特殊的启动命令,可自行修改当前注释快中的内容。

测试部署

项目创建后默认集成了thinkphp的demo,可直接通过“CloudIDE-左上角插件「wb插件」-「部署」”上线。上线后,会返回测试域名,通过拼URL “xxx.workbenchapi.aliyun.com/thinkphp-demo/public/index.php” 即可访问。

你可以将自己项目替换demo进行上线。项目上传的方法有两种:

第一种方式

  • 您可以移步到「开发部署」Tab页面,点击右上角的「在线开发部署」以打开CloudIDE,以下图项目为例,在左侧项目目录中包含了4个文件。然后执行4个步骤:

1、从您本地目录中拖放项目文件到CloudIDE这个工程的随意目录下,随即系统将会执行上传拷贝操作,如下图:image.png2、项目文件拷贝完后,您需要仔细阅读README.md配置说明,按步骤操作,各种搬站模板说明各不一样。

3、提交代码,需要打开「代码管理」Git插件,把搬站源代码提交到Codeup代码仓库中,记得提交完后,还需要Push,这样变更才能上传的Codeup服务端,如下如:image.png

4、执行部署,点击CloudIDE的「部署」插件:image.png

第二种方式

  • 您应该已经想到,可以直接通过本地提交代码到Codeup代码仓库中,步骤简述如下:

1、移步到「基本信息」Tab页,您可以看到「Codeup代码仓库」地址,通过本地Git Client把存量项目工程提交到这个代码仓库中。您可以参考「SSH秘钥配置」获得详细Git客户端环境准备帮助。2、代码提交好了后,您还需要完成”第一种方式”的 2-4 步进行操作。