Tag: PHP

在IDE中显示Docker容器输出

我在Linux Mint主机上使用Docker容器来运行PHPUnittesting,如下所示: docker run -t -i –volume=$PWD:/var/www username/phpunit:v1 –stderr tests/ PHPUnit 4.8.3 by Sebastian Bergmann and contributors. ………. Time: 1.18 seconds, Memory: 11.25Mb 所以,这工作正常。 我的下一步是在IDE(PHPStorm)中创buildFile Watcher,这样每次testing文件发生变化时都会运行这个docker命令。 但是,当IDE运行命令,而不是像上面那样得到输出,我得到的是这个错误消息: cannot enable tty mode on non tty input 看起来这在Windows机器上发生了很多,但我找不到在Linux上导致这个问题的原因。 有没有办法来解决这个问题 ?

nginx php-fpm崩溃(也许docker工人)

我使用下面的Dochkerfile和configuration文件来创build我的nginx和php-fpm容器。 Dockerfile: FROM richarvey/nginx-php-fpm RUN php5enmod mcrypt RUN rm -f /etc/nginx/sites-available/default.conf RUN rm -f /etc/nginx/sites-enabled/* COPY config/default.conf /etc/nginx/sites-available/default.conf RUN apt-get update && apt-get install -y php5-dev nano ENV TERM xterm COPY config/nginx.conf /etc/nginx/ nginx.conf user www-data; worker_processes 1; pid /run/nginx.pid; events { worker_connections 1024; # multi_accept on; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format […]

从PHP运行docker请求

我已经封装了pdftk(PDF工具包)作为程序,可以运行在一个Fedora泊坞窗图像。 这使我可以在不支持pdftk的较新AWS AMI映像上运行pdftk。 当使用docker run命令replace我们的PHP程序中的pdftk时,它在从命令行运行PHP程序时效果很好,但是当它作为cron作业或作为邮箱命令运行时,docker将不会运行。 我已经使得cron和邮箱用户成为了docker组的一部分,检查了权限和path,但是仍然没有喜悦。 exec PHP命令如下所示: $command = 'docker run -i -t –privileged -v /var/www/mbx/forms/inbox:/workdir -w /workdir/ brnlab/aultman-pdftk ./'.basename($files[$i]).' burst output ./pg_%03d.pdf'; 奇怪的是,运行这个命令时,$命令的返回值是空的,所以我不确定是否有错误。 它似乎不挂断电话。 任何想法进一步诊断问题的最佳方法?

Dockerfile php-fpm未满足的依赖关系

我有一个Dockerfile,在其中为php-fpm创build一个容器。 我拉到我的基地的Ubuntu的形象,它得到工作,但是当试图安装php-fpm和php5-intl由于未满足的依赖关系退出。 任何人都可以检查我的文件,并发现任何明显的请:) FROM phalcon/ubuntu MAINTAINER bob <bob@bob.com> RUN echo "deb http://archive.ubuntu.com/ubuntu/ vivid universe" >> /etc/apt/sources.list # Install software requirements RUN apt-get update && \ apt-get install -y software-properties-common && \ add-apt-repository -y ppa:ondrej/php5 && \ add-apt-repository -y ppa:nginx/stable && \ apt-get update -y –force-yes && \ apt-get upgrade -y –force-yes && \ BUILD_PACKAGES="supervisor php5-fpm […]

获得Docker链接的容器本地主机指向主机本地主机

所以在我的主机环境,我有这个tomcat服务运行在端口10000,所以我可以访问办公室的内部服务。 我有一个Windows主机条目: localhost developer.mycompany.com 所以我可以访问terminaldeveloper.mycompany.com:10000/some/url ,如果成功返回一个JSON响应。 我还有一个Docker组合文件,它将nginx和php-fpm容器放在一起,并将它们链接起来以运行基于Linux的PHP开发环境。 我试图实现的是使docker容器知道developer.mycomoany.com主机条目。 所以当我的LINK容器上的PHP代码发送一个POST请求到http://developer.mycompany.com:10000/some/url它知道主机条目,并能够击中该端点。 我已经尝试过configurationnet=host但不适用于链接的容器。 PHP应用程序错误消息: 名称或服务未知\ n [file] / srv / http / vendor / guzzlehttp / guzzle / src / Handler / StreamHandler.php \ n [line] 282 \ n [message] fopen(http://developer.mycompany.com:10000/app/register):无法打开stream:php_network_getaddresses:getaddrinfo失败:姓名或服务未知\ n [file] /srv/http/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php\n[line] 282“}} 如何启用我的链接容器上的PHP应用程序与主机developer.mycompany.com (localhost)条目交谈? 这是我的docker组成: app: image: linxlad/docker-php-fpm tty: true ports: – "9000:9000" volumes: – […]

mongodb容器中的mongodump

我使用了2个docker容器:一个用于我的PHP应用程序,一个用于MongoDb。 PHP应用程序使用Doctrine将数据写入MongoDb容器,没有任何问题,但是当我想在PHP应用程序容器内通过以下方式进行备份: $mongodump –host mongo –port 27017 它创build“转储/产品”文件夹,但它是空的。 另外,如果我进入MongoDb容器,我可以看到数据库和正确的数据在集合,但如果我尝试连接到MongoDb的PHP应用程序容器内: $mongo –host mongo –port 27017 它连接,它显示数据库,但它没有收集。 任何想法?

用nginx和php5设置docker

试图用nginx和php5来设置docker。 这是我的Dockerfile FROM nginx:1.9.9 RUN apt-get update RUN apt-get -y install php5-fpm php5-mysql php-apc php5-imagick\ php5-imap php5-mcrypt php5-curl php5-cli php5-gd php5-pgsql\ php5-common php-pear curl php5-json ADD index.html /usr/share/nginx/html/index.html ADD index.php /usr/share/nginx/html/index.php ADD default /etc/nginx/sites-available/default RUN /etc/init.d/php5-fpm restart 我可以用下面的命令来build立它: sudo docker build -t myuser/nginx-php5:0.1 . 然后我启动它如下: sudo docker run -d -P myuser/nginx-php5:0.1 nginx deamon正在运行,我确实可以看到我的index.html,但index.php获取“下载”,而不是服务。 这表明PHP没有正确设置… 我的默认文件: […]

使用PHP官方泊坞窗图像设置日志logging

我正在使用官方的PHP泊坞窗图像,但不知道如何设置日志logging工作。 我想查看我的error_log()结果在一个文件中。 更新 :我把/usr/src/php/php.ini-development改名为/usr/src/php/php.ini-development ,但是我只能看到使用docker logs截断docker logs 。

AWS Elastic Beanstalk Docker PHP应用程序

我在一个t1.micro的AWS EB上有一个Docker容器,它是一个PHP应用程序,循环执行一些任务,hibernate几分钟,然后再次循环执行任务。 任务包括在FTP上移动一些数据,以及从Redis商店更新logging。 它总是build立和运行良好,但一天后,应用程序的健康状况变为“警告”,原因说明CPU运行在100%,我没有看到它处理的FTP上的任何活动,日志没有显示任何指示应用程序失败。 这只是将EC2实例升级到更高规格的情况吗? 或者,我运行的容器会在每次迭代后释放资源的方式有缺陷。 谢谢

从.env读取laravel 5.1的嵌套variables(和docker)

Laravel 5.1用奇怪的方法评估嵌套variables。 vlucas / phpdotenv的规范如下: CACHE_DIR="${BASE_DIR}/cache" 但是, DB_HOST="${MYSQLDB_PORT_3306_TCP_ADDR}"将会通过http返回"${MYSQLDB_PORT_3306_TCP_ADDR}" ,这显然不能连接到。 通过phpunit TESTING_DB_HOST="{$MYSQLDB_PORT_3306_TCP_ADDR}"将正确返回172.17.0.2。 注意$的位置是不正确的。 将$放在正确的位置将返回"${MYSQLDB_PORT_3306_TCP_ADDR}" 。 更改$请求的$位置并不重要,我没有收到评估值。 我正在使用docker,我不知道是否有任何事情要做这个问题。 我正在使用本指南: Laravel / docker 任何想法是怎么回事,以及如何从一个.env嵌套variables获取http的mysql ip?