PhpStorm
介绍
本文将介绍抖音云插件
PhpStorm
版本的使用。使用限制
- 1.在本机安装
Docker
环境,推荐Windows/Mac/Linux
用户安装Docker Desktop
软件(下载链接),并打开软件保证Docker
服务正常启动。- 2.下载并安装
Jetbrains PhpStorm
软件,版本要求2023.01
版本以上。- 3.本文档基于插件版本为
1.5.4
,参阅本文档前请将插件更新至1.5.4
版本。插件安装
- 1.打开PhpStorm的设置界面。
- ◦Mac OS用户选择 PhpStorm -> Preferences。
- ◦Windows用户选择File -> Settings。
- 2.在设置界面中选择 Plugins ,在搜索框中输入 Douyin Cloud ToolKit,点击安装插件。
登录
首次打开抖音云插件时需要先完成登录。点击登录按钮,在弹出框中输入登录抖音云控制台的账号密码,完成登录。
在弹出框中选择登录方式,并完成登录,账号需要先在抖音云控制台完成注册开通。
登录完成后,插件配置界面登录状态会更新为 已登录。
项目配置
项目首次使用抖音云插件时,需要选择配置对应的小程序和服务,点击配置按钮,在弹出框中选择对应的小程序和服务,完成配置。
选择完成后,插件配置界面App和Service会更新为对应的选择。
刷新配置
如果在抖音云控制台对小程序和服务进行对应的修改后,需要刷新配置。点击刷新配置按钮刷新配置,插件会校验当前配置的有效性,如果没有效需要重新进行配置。
本地调试
通过抖音云插件可以将项目部署在本地 Docker 容器中,并且通过抖音云代理可以访问抖音云 dev 环境的数据库资源(比如 MySQL、 Redis、 Mongo 等),而无需开启数据库资源的公网访问,保证数据安全。
下面将介绍如何通过抖音云插件进行本地开发和调试,本文档中将以抖音云官方php语言的deom为例,项目地址:GitHub - bytedance/douyincloud-thinkphp-nginx-demo。
1. 启动抖音云代理
- 1.在
PhpStorm
中Run/Debug Configuraitons
中创建抖音云代理配置。- 2.填入对应的名称,点击
Apply
保存,点击OK
完成创建。- 3.选择刚刚创建的抖音云代理配置,点击Run按钮启动抖音云代理。
启动完成,抖音云代理会在本地启动两个代理容器,用于云上云下流量转发。
- •websocket 代理容器
- •数据库代理容器
打开
Docker Desktop
,可以看到如下两个代理容器已经被正确启动,并且状态为 Running。2.配置并启动后端服务
当抖音云代理配置启动完成后,会在当前项目路径下生成两个服务 docker 相关的配置文件,如下图所示:
- •
dycloud.Dockerfile
- •
dycloud-docker-compose.yml
注意
- •如果代理启动完成后,在Project窗口中未显示生成的两个文件,可以在Project窗口右键 -> ReLoad From Disk点击刷新。
- •如果本地已经存在同名文件,则抖音云代理不会生成该文件。如果想要重新生成该文件,需要手动删除项目下的同名文件。
说明
- •通过生成的dycloud.Dockerfile以及dycloud-docker-compose.yml文件,将后端服务通过docker在本地启动,即可实现本地访问云端数据库的调试,具体可以参考如下流程。
配置文件的内容如下:
dycloud.Dockerfile
:# php项目启动基础镜像 FROM public-cn-beijing.cr.volces.com/public/base:php-7.4-fpm-nginx #安装 xdebug 扩展并开启;设置xdebug配置 RUN pecl install xdebug-3.1.6 && docker-php-ext-enable xdebug \ # 指定开启xdebug远程调试功能 && echo "xdebug.mode = debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ # 指定IDE所在电脑的ip && echo "xdebug.client_host = 10.90.34.97" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ # 指定IDE debug端口 && echo "xdebug.client_port = 9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ # xdebug通信的协议,这里固定填dbgp && echo "xdebug.remote_handler = dbgp" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ # 通信的key标识 && echo "xdebug.idekey = PHPSTORM" # 环境变量,从云端dev环境拉取,需要手动填充密码等相关信息 ENV REDIS_USERNAME=default ENV CLOUD_ENV=DEV ENV MYSQL_PASSWORD=请自行输入对应密码信息 ENV MONGO_ADDRESS=dycloud-local-proxy:3717 ENV MONGO_USERNAME=root ENV MONGO_PASSWORD=请自行输入对应密码信息 ENV REDIS_PASSWORD=请自行输入对应密码信息 ENV REDIS_ADDRESS=dycloud-local-proxy:6379 ENV SERVICE_ID=1jdoyz791cvnd ENV MYSQL_USERNAME=test ENV MYSQL_ADDRESS=dycloud-local-proxy:3306 # 将构建上下文内容拷贝至 /opt/application/目录下 COPY . /opt/application RUN cp /opt/application/conf/nginx.conf /etc/nginx/conf.d/default.conf \ && cp /opt/application/conf/www.conf /usr/local/etc/php-fpm.d/www.conf \ && cp /opt/application/conf/zz-docker.conf /usr/local/etc/php-fpm.d/zz-docker.conf\ && mkdir -p /run/nginx \ && chmod -R 777 /opt/application/runtime \ && chmod -R 777 /opt/application/run.sh CMD /opt/application/run.sh
说明
- •第1行
FROM public-cn-beijing.cr.volces.com/public/base:php-7.4-fpm-nginx
,服务默认的基础镜像,如果开发者项目对php
版本有要求,可自行按需替换php
版本的镜像。- •第3行 - 第14行对应于
PHP
调试时XDebug
的相关配置。- •第15行-第26行为开发者所配置的service在抖音云dev环境的环境变量,其中
MYSQL_ADDRESS
、MONGO_ADDRESS
、REDIS_ADDRESS
对应的地址修改为了dycloud-local-proxy
。- ◦这是为了进行 流量转发,开发者在项目中需要通过环境变量的方式来获取访问数据库的地址,进而在本地调试时实现访问云端数据库。
- •由于安全原因,需要开发者自行填入访问数据库的对应的密码信息,参见上述示例的第18行、第21行以及第22行。
dycloud-docker-compose.yml
:services: java-danmu-demo: build: context: . dockerfile: dycloud.Dockerfile container_name: java-danmu-demo extra_hosts: - ark-vg.dyc.ivolces.com:17.100.0.3 - config-center.dyc.ivolces.com:17.100.0.3 - developer-toutiao-com.openapi.dyc.ivolces.com:17.100.0.3 - minigame-zijieapi-com.openapi.dyc.ivolces.com:17.100.0.3 - open-ai-byted-org.dyc.ivolces.com:17.100.0.3 - open-douyin-com.openapi.dyc.ivolces.com:17.100.0.3 - webcast-bytedance-com.openapi.dyc.ivolces.com:17.100.0.3 - ws-push.dyc.ivolces.com:17.100.0.4 networks: dycloud0: ipv4_address: 17.100.0.2 ports: - mode: ingress target: 8000 published: "8000" protocol: tcp volumes: - type: bind source: /Users/bytedance/Code/bytedance/douyincloud/douyincloud-thinkphp-nginx-demo target: /opt/application bind: create_host_path: true networks: dycloud0: name: dycloud0 external: true
说明
- •上述配置文件主要涉及本地服务容器启动时的一些配置信息,包括容器网络信息、hosts信息等。
2.1 在PhpStorm中完成项目配置
在
PhpStorm
Run/Debug Configurations
新创建一个Docker Compose
配置:此处在
Compose files
处选择刚刚创建的dycloud-docker-compose.yml
文件,点击OK
完成创建。点击
Run
按钮启动服务容器:2.1.3 配置Php Remote Debug
在
PhpStorm
打开Run/Debug Configurations
配置页,新建一个PHP Remote Debug
选项:- •填写
Name
,此处值为docker-remote-debug
。- •点击右侧按钮创建一个
Server
,配置如下:- ◦
HOST
填写localhost
。- ◦
Port
填写端口8000
。- ◦
Debugger
选择XDebug