Docker打镜像时怎么拉取git仓库
有时我们需要在Docker容器中去拉取git仓库,而这些个仓库很多时候是私有的,需要权限才能拉取。怎么做才合适呢?
我们知道git仓库一般都是支持通过SSH的方式去推送的拉取的,那把具有拉取权限的私钥加到Docker镜像里不就可以了吗?
听起来很简单,实际上要复杂一些,因为直接把私钥文件添加进镜像是不行的,因为还有其它的交互式操作。
Home of Little Jelly
有时我们需要在Docker容器中去拉取git仓库,而这些个仓库很多时候是私有的,需要权限才能拉取。怎么做才合适呢?
我们知道git仓库一般都是支持通过SSH的方式去推送的拉取的,那把具有拉取权限的私钥加到Docker镜像里不就可以了吗?
听起来很简单,实际上要复杂一些,因为直接把私钥文件添加进镜像是不行的,因为还有其它的交互式操作。
最近在使用EasySwoole处理异步任务(Task)时遇到了一个问题。
有一个Task,原本是在`EasySwooleEvent.php`中注册Crontab并异步调用这个Task运行的,好像没啥问题。但当把这个Task改为在Http控制器中执行时,问题出现了。
这个Task的运行时长通常在2分钟左右,在Crontab中能正常运行,而通过Http控制器去请求同步执行时,基本上都是在8秒左右就结束了,并且返回一个`-7`的错误代码,EasySwoole官网文档中说这个错误是因为超时。
使用PHP搭建的网站有时会遇到Nginx报超时的问题,这是因为PHP的执行时间过长,Nginx在默认的等待时间内没有收到执行结果而报错。
要避免这个问题,需要同时对Nginx和PHP的配置做修改。
### PHP的配置
本篇讨论一下Nginx、PHP、MySQL服务的启动顺序问题。
一般情况下,当服务器刚启动还没有收到HTTP请求时,哪个服务先启动哪个后启动没有佬影响。反之,当服务器刚启动时就要处理HTTP请求,特别是大量的请求时,Nginx、PHP、MySQL服务的启动顺序就很重要,不然就会出现500、502之类的错误。
FastAPI接收GET请求的参数是非常简单的,但是POST却不是这样。
如果按GET的写法,比如
怎么自动清空Redis数据?
我们知道通过`redis-cli`命令行是可以进行Redis的交互操作的,其中有个命令`flushall`是清空所有数据,但是这个命令不能做到自动化。那就只能通过程序去操作了,再配合定时任务就可以做到自动化清空。
以PHP为例,首先需要安装Redis扩展,方法有好几种:
在Windows中使用ssh命令连接操作远程服务器时,几分钟不活动可能就会掉线,这时就需要重新连接,比较麻烦。
可以通过一个简单的设置来避免这个问题,步骤:
WSL2 是 Windows 10及之后的系统上的一种工具,全称是Windows Subsystem for Linux,它是运行在Windows下的Linux子系统,当前的大版本是2,可以让开发者直接在 Windows 上运行 Linux 环境,而不需要任何修改、虚拟机软件或双系统设置。
WSL2 现在已经支持systemd,它是许多常用的 Linux 发行版(例如 Ubuntu、Debian 等)使用的初始化系统和服务管理器。
WSL(Windows Subsystem for Linux),即Windows下的Linux子系统,为使用Windows的Linux开发者提供了很大的便利,当前的WSL大版本是2,已支持systemd,对开发者更是利好。
本人主要用PHP和Python开发,近期也尝试了在WSL2下进行PHP开发,Linux发行版使用的是Ubuntu 20.04。
之前用EasySwoole的时候是版本3.4,最新的版本已经是3.7了,但需要PHP8版本,3.6版本也同样需要PHP8才可以,而3.5版本有PHP7.4就可以了,所以先升级到3.5吧。
因为老项目里的代码不多,所以我采用的是全新安装框架的方式,再把老项目里的代码迁移过去。迁完运行,发现一些问题: