[docker]在docker中使用php composer
前言
我之前搭建了一个twitter转发推文的工具,稳定正常运行了半年,这几天却报错:
OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to
最初以为是ca证书的问题,然后开始折腾重新续期,重新申请,结果发现并不是,以为是TwitterOauth在这个库版本太低了,然后升级了一波,结果。。报!错!了!
Fatal error: Uncaught Error: Class 'Composer\CaBundle\CaBundle' not found in
/www/twitter/\twitteroauth\src\TwitterOAuth.php:572 Stack trace:
#0 /www/twitter/\twitteroauth\src\TwitterOAuth.php(620): Abraham\TwitterOAuth\TwitterOAuth->curlOptions()
#1 /www/twitter/\twitteroauth\src\TwitterOAuth.php(557): Abraham\TwitterOAuth\TwitterOAuth->request('https://api.twi...', 'GET', 'Authorization: ...', Array, false)
#2 /www/twitter/\twitteroauth\src\TwitterOAuth.php(490): Abraham\TwitterOAuth\TwitterOAuth->oAuthRequest('https://api.twi...', 'GET', Array, false)
#3 /www/twitter/\twitteroauth\src\TwitterOAuth.php(467): Abraham\TwitterOAuth\TwitterOAuth->makeRequests('https://api.twi...', 'GET', Array, false)
#4 /www/twitter/\twitteroauth\src\TwitterOAuth.php(232): Abraham\TwitterOAuth\TwitterOAuth->http('GET', 'h in /www/twitter/\twitteroauth\src\TwitterOAuth.php on line 572
好吧,原来是因为我没有编译,但是我生产环境,又是docker容器中,是不太想去安装git,composer这些玩意儿的。 这时候我灵机一动,是不是composer也有docker的镜像呢? 马上去是hub.docker中搜索,果然有,而且是官方维护的。那接下来就简单了。
安装
# docker pull composer:2.0.8
我以路径/www/twitter/twitteroauth
为例子,直接运行:
docker run --rm --interactive --tty \
--volume /www/twitter/twitteroauth/:/app \
composer:2.0.8 install
稍等一会,就可以看到有vendor
目录生成了。成功。
因为在docker中用php composer,php版本依赖没有保障,所以不推荐生产环境这么玩。 如果想持久化缓存,则可以将缓存映射到宿主机,比如这样:
docker run --rm --interactive --tty \
--volume /www/twitter/twitteroauth/:/app \
--volume /www/twitter/phpcomposer/:/tmp \
composer:2.0.8 install
参考: 1.I used the TwitterOAuth library and got this error
本文来自:[docker]在docker中使用php composer-小码农,转载请保留本条链接,感谢!
温馨提示:
本文最后更新于 2022年04月21日,已超过 903 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
正文到此结束
- 本文标签: 无标签
- 本文链接: https://djc8.cn/archives/docker-using-php-composer-in-docker-to-install-php-program.html
- 版权声明: 本文由小码农原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权