docker+lnmp 报错小结,以laradock为例,其它同理

用vagrant + centos7 + lnmp开发都快两年,这是一个很好用的本地开发环境。对于我来说,它更像是一台真正的linux电脑,能真正直接把握它的每一处地方。而且现在内存都普遍8G以上的本子,加上SSD真的是毫无压力。

但时间一长,暴露出很多很烦人的东西:
(1)只对本地有用,到了线上环境又是一堆恶心的依赖报错。当然也可以写install.sh,但维护起来又麻烦。
(2)协作开发时,大家的盒子不可能一直同步,总有一些依赖是你所没有的。交流总是会有成本的。
(3)持续集成时(我用的是gitlab),流水线似乎更喜欢docker
……

看来,是时候归纳一波docker的坑了。下面的报错,我查github的issues和stackoverflow的比较多,感觉国内的文档还是少(更多的文档是官方文档的英文翻译)。

对于docker-compose的LNMP环境,自己写的总不如人家一直维护的好,网上也有很多dnmp之类的。最后比较了一上,还是用了laradock, https://github.com/laradock/laradock

另外,我自己fork了一份代码,用来跟踪官方代码变化。地址如下:https://github.com/tianrang/laradock.git。我创建了 fork 分支,我自己的lnmp环境就是在这个 fork 分支下创建的,实在搞不定laradock的可以去看看我的fork分支的提交修改记录(就改了几处~)。

还有,如果在安装过程中出现 443 端口的问题,比如安装 node 的时候可能会出现,那么就请换一个WIFI。各种办公环境不一样,路由器设置不一样,网络也是五花八门。你也可以用手机热点来解决这个问题,并且真心费不了什么流量。请别吝啬你的4G。真正在云服务器上部署时是不会遇到这样的问题的。

1、安装PHP扩展失败

下面的报错以 php-redis安装失败为例

Step 15/62 : RUN if [ ${INSTALL_PHPREDIS} = true ]; then     printf "\n" | pecl install -o -f redis     &&  rm -rf /tmp/pear     &&  docker-php-ext-enable redis ;fi
 ---> Running in 2a40c1b57944
No releases available for package "pecl.php.net/redis"
install failed
ERROR: Service 'php-fpm' failed to build: The command '/bin/sh -c if [ ${INSTALL_PHPREDIS} = true ]; then     printf "\n" | pecl install -o -f redis     &&  rm -rf /tmp/pear     &&  docker-php-ext-enable redis ;fi' returned a non-zero code: 1

原因:其实,就一句话 No releases available for package "pecl.php.net/redis",社区有人说是因为 pecl.php.net的https的原因。

解决:
(1)http_proxy代理。在所有需要安装PHP扩展的 Dockerfile 文件

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值