Tag: PHP

PHP-docker容器中的环境variables

我想在我的泊坞窗容器中显示一个env var。 PHP脚本如下所示: <html> <head> <title>Show Use of environment variables</title> </head> <body> <?php print "env is: ".$_ENV["USER"]."\n"; ?> </body> </html> 我使用OpenShift来启动容器。 PHP – 容器显示: env is: 现在我更改我的容器的dcconfiguration: oc env dc/envar USER=Pieter deploymentconfig "envar" updated 当我访问容器。 USER的env var是Pieter docker exec -it 44a0f446ae36 bash bash-4.2$ echo $USER Pieter 但我的脚本仍然显示:“ env is: ”它不填写variables。

Docker MYSQL'连接被拒绝'

我第一次尝试了Docker。 得到了一个LEMP堆栈并运行,但是我无法连接到MYSQL数据库。 不在我的Symfony应用程序上,不在PHPMyAdmin上。 应用程序正在返回以下错误代码: 驱动程序发生exception:SQLSTATE [HY000] [2002]连接被拒绝 这是我的docker-compose.yml: nginx: image: tutum/nginx ports: – "80:80" links: – phpfpm volumes: – ./nginx/default:/etc/nginx/sites-available/default – ./nginx/default:/etc/nginx/sites-enabled/default – ./logs/nginx-error.log:/var/log/nginx/error.log – ./logs/nginx-access.log:/var/log/nginx/access.log phpfpm: build: phpfpm/ ports: – "9000:9000" volumes: – ./public:/usr/share/nginx/html mysql: image: mariadb ports: – 3306:3306 environment: MYSQL_ROOT_PASSWORD: admin phpmyadmin: image: phpmyadmin/phpmyadmin restart: always links: – mysql ports: – 8183:80 […]

GitLab-CI多亚军PHPcomposer phpcaching

我正在使用gitlab-ci-multi-runner和docker容器。 一切都很好,但docker集装箱不保留composercaching,所以每次运行composer一次又一次地下载依赖,这需要很多时间。 有没有什么办法可以configurationgitlab-ci-runner容器来保持composercaching,或者在保存composercaching的每次运行中都装载一个卷?

Symfonylogging到Docker容器内的stdout

我正在为Symfony应用程序构build一个docker镜像。 在这个图像中,我想将Symfony日志stream式传输到标准输出。 所以,类似于如何configurationnginx日志,我将这一行添加到我的Dockerfile中: ln -sf /dev/stdout /var/www/project/app/logs/prod.log 在容器内部,我可以看到: $ ls /var/www/project/app/logs/ -l total 12 -rw-r–r– 1 501 games 4473 Jul 21 08:36 dev.log lrwxrwxrwx 1 501 games 11 Jul 21 08:35 prod.log -> /dev/stdout 但是,该应用程序抛出以下错误: PHP致命错误:未收到的exception“UnexpectedValueException”与消息“的stream或文件”/var/www/project/app/logs/prod.log“无法打开:无法打开stream:没有这样的文件或目录'在/无功/networking/项目/应用/caching/生产/ classes.php:5808 堆栈跟踪: #0 /var/www/project/app/cache/prod/classes.php(5746):Monolog \ Handler \ StreamHandler-> write(Array) #1 /var/www/project/app/cache/prod/classes.php(5917):Monolog \ Handler \ AbstractProcessingHandler-> handle(Array) #2 /var/www/project/app/cache/prod/classes.php(6207):Monolog \ […]

缓慢的响应时间:Docker容器中的Laravel 5.2

在PHP-7泊坞窗容器中运行Laravel 5.2时,我得到的响应时间是300ms – 400ms 。 这是非常缓慢的,虽然如果我只是在同一个容器上回显phpinfo()响应时间是15ms – 50ms是任何人在Docker容器中遇到与Laravel这些慢响应时间?

Docker-php-ext-install mcrypt丢失的文件夹

我尝试在基于php:7.2-apache Docker镜像中安装mcrypt。 因此,我从文档中使用RUN-Command,并在这里回答,但我收到此错误: error: /usr/src/php/ext/mcrypt does not exist usage: /usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name …] ie: /usr/local/bin/docker-php-ext-install gd mysqli /usr/local/bin/docker-php-ext-install pdo pdo_mysql /usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop if custom ./configure arguments are necessary, see docker-php-ext-configure Possible values for ext-name: bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext […]

Docker容器的粒度

在使用Dockerdevise应用程序基础架构和架构时,最佳做法是在“服务”中为每个“服务”或多个容器创build一个容器? 例如使用Nginx,PHP-FPM,Redis,MySQL和ElasticSearch的分布式PHP应用程序。 服务容器: Nginx + App + PHP-FPM(完整的应用程序作为“服务”容器) Redis的 MySQL的 过程容器: Nginx的 应用 PHP-FPM Redis的 MySQL的 从我的angular度来看,使用“服务”容器方法似乎更容易维护,因为为每个过程pipe理如此多的谨慎容器可能会变得麻烦。

我想要一个容器处理多个请求?

这个问题不涉及到networking或托pipe,而是关于如何构build我的应用程序:如果我设置一个docker容器作为一个PHP的networking节点,是适当的约定,我设置它,可以处理多个连接? 或者,最好是将它设置为一次处理一个请求,然后如果我想要同时处理更多的连接,则旋转同一图像的多个实例?

为什么在写入标准输出时,PHP-FPM为前缀添加警告?

我尝试使用官方的php-fpm映像在Docker容器中运行基于Yii的PHP应用程序 。 Docker容器将所有日志消息写入stdout / stderr是很常见的做法。 所以我从我的容器中做了相同的代码,基本上看起来像这样: $fp = @fopen('php://stdout','w'); fwrite($fp, $message); fclose($fp); 不幸的是,PHP-FPM现在将我所有的日志消息加上丑陋的警告: [21-Mar-2016 14:10:02]警告:[pool www] child 12表示inputstdout:“2016-03-21 14:10:02 [xxxx] [ – ] [ – ] [trace] [yii \基地\应用程序::引导]引导用yii \debugging\模块:: bootstrap()“[21-Mar-2016 14:10:02]警告:[池www]孩子12说到标准输出:”2016-03-21 14:10:02 [xxxx] [ – ] [ – ] [info] [yii \ web \ Session :: open]会话开始“… 为什么是这样的,有没有办法阻止PHP-FPM做到这一点? 更新: 我也在docker-library / php项目网站上打开了一个问题 。 他们已经在其configuration中包含了catch_workers_output […]

docker的mysql不能连接到容器

我有docker-compose文件来创buildmysql映像并将端口暴露给3306,但是当我尝试安装CMS时,它给了我错误,它无法连接到数据库。 我试图扫描端口3306,它显示它已经打开,所以mysql正在运行。 为什么两个docker集装箱不能看到对方? 这是我的docker-compose文件: phpfpm: restart: always extends: file: php-fpm-5.6.yml service: phpfpm links: – db:db nginx: restart: always image: nginx ports: – "8000:80" links: – phpfpm:phpfpm volumes: – ./nginx/vhost.conf:/etc/nginx/conf.d/default.conf – ./app:/var/www/html – ./log/nginx:/var/log/nginx db: restart: always image: mysql ports: – "3306:3306" environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_DATABASE: database