Docker 私有仓库搭建

在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker 不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。

Docker 官方提供了一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。

分类至 Docker
0条评论

Let's Encrypt 通配符证书续期失败:must be provided with --manual-auth-hook

前几个月发表了一篇文章《申请免费的 Let's Encrypt 通配符 SSL/TLS 证书》,如今2个多月过去,今天收到了来自 Let's Encrypt 的邮件,提醒我证书该续期了。

原本以为只需要执行 certbot-auto renew 就可以愉快的完成续期,但执行报错了,输出结果如下:

The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',). Skipping.
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/live/yangdx.com/fullchain.pem (failure)

重点这句:An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.

原来,通配符域名证书不能简单的通过执行 certbot-auto renew 来完成续期,必须通过 --manual-auth-hook 参数提供一个身份验证脚本来自动完成 DNS TXT 记录的验证操作。

分类至 杂项
0条评论

php 中 http_build_query 函数对空值的处理

在对接 API 接口的时候,我们常常使用 http_build_query 函数来拼接参数。但是,这个函数会对空值做过滤和转换,不小心的话,很容易踩坑。

下面演示执行:

$args = [
    'key1' => 0,
    'key2' => '',
    'key3' => '0',
    'key4' => [],
    'key5' => null,
    'key6' => false,
    'key7' => true
];
$str = http_build_query($args);
echo $str;

输出结果为...

分类至 PHP
0条评论

docker 容器内的 laravel 项目访问变慢

因为重装 win10 系统,把 Docker 也重装了一遍,安装的时候提示系统支持 WSL 2,说是比 Hyper-V 启动更快,推荐使用。居然有好处,那就勾上这个选项吧。

启用 WSL 2 后,Docker 启动确实快了很多。

但是,今天发现,容器内的 Laravel 项目变慢了!

重装系统前,Laravel 项目 API 接口访问慢的时候也就几百毫秒,而现在却要 1.7 秒左右。追踪排查,我这个接口里用到的 SQL 也不复杂啊,就是一个简单的 Select 语句,放到 phpMyAdmin 里面执行也很快,确认不是 SQL 的问题...

分类至 Docker
0条评论

git file mode change

提交代码到仓库时,发现明明没有改动的文件提示有修改,并且是很多的文件都提示有修改。

但是修改的添加行和删除行都是 0。

于是 diff 一下:

$ git diff code.c
old mode 100755
new mode 100644

 

原来是文件模式发生了变化。

想了下,可能是别人从 Mac 上提交,我在 Win 上 pull 代码,导致文件模式发生了变化。

分类至 杂项
0条评论