Tag: PHP

控制台PHP脚本在通过docker exec或PhpStorm执行时运行方式不同

我试图通过PhpStorm运行控制台运行Doctrine 2的控制台脚本。 Docker被设置为部署服务器。 如果我运行这个: $ docker exec container_name /var/www/vendor/bin/doctrine-module orm:schema-tool:create 它打印: 没有要处理的元数据类。 但是当我运行PhpStorm中的PHP运行/debuggingconfiguration:文件:/ home / username / PhpstormProjects / proj / vendor / bin / doctrine-module 它打印: docker:// image_name / container_name / var / www / vendor / bin / doctrine-module 致命错误:未捕获PDOException:PDO :: __构造():php_network_getaddresses:getaddrinfo失败:名称或服务不知道/var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php行765 Zend \ ServiceManager \ Exception \ ServiceNotCreatedException:无法创build名称为“doctrine.connection.orm_default”的服务。 原因:在驱动程序中发生了一个exception:SQLSTATE [HY000] [2002] php_network_getaddresses:getaddrinfo失败:名称或服务未知/ […]

postgres-docker-container中无法连接php到db

我有一个debian wheezy服务器与Apache2。 该数据库是一个docker容器 – 标准postgres:9.1与端口5432暴露localhost:5434,数据文件夹是在一个自己的容器通过-v选项连接。 数据容器 docker run –name db-data -v / data -e PGDATA = / data -it –entrypoint / bin / bash postgres:9.1 数据库容器 docker run -d –name db -e POSTGRES_USER = name -e POSTGRES_PASSWORD = pwd -e PGDATA = / data -p 5434:5432 –volumes-from db-data postgres:9.1 我使用一个简单的PHP脚本来testing连接: $db = pg_connect("host=localhost port=5434 dbname=name […]

Csrf令牌问题与缩放

我已经将我的应用程序扩展到3个不同的服务器,这些服务器使用通用的mysql和redis服务 比我已经设置会话和caching驱动程序我redis(他们工作正常)。 但我仍然得到令牌不匹配错误。 有没有人解决这个问题,而不closuresCSRF保护? 顺便说一句,我正在使用Docker。

访问容器内的图像哈希

是否可以从容器内访问用于创build容器的图像的哈希ID? 我想在一个容器中运行的php应用程序提供的每个页面的底部提供一个“签名版本”。 我想一种方法是在Docker撰写文件中使用环境variables: environment: – IMAGE_HASH=${IMAGE_HASH} 然后有一个包装脚本首先在运行docker-compose之前将IMAGE_HASH = ABC123写入.env文件。 脚本可以检查图像以获取哈希ID。 但是我想知道是否有一个“正确”的方法来做到这一点? 所以从撰写文件的内容如下: environment: – IMAGE_HASH=this.imagehash

如何在不使用ng服务的情况下投放Angular 5应用程序?

我可以用ng serve来构build和服务Angular 5项目,并在浏览器中查看它。 我想将文件移动到Docker容器上,因为我的最终应用程序需要一个php后端。 当我将与ng serve运行相同的文件系统移动到docker版本并尝试导航到它时,我收到一个服务器错误。 我知道容器工作正常,因为我可以PHP文件浏览器在各自的本地端口没有任何问题。 所以它需要是Angular导致错误的东西。 我注意到, ng new angular-tour-of-heroes项目没有在根项目目录中的index.html。 当我将src/文件夹中的文件移动到根目录时,浏览器中仍然没有任何东西。 我如何使用Docker而不是ng serve来使用Angular应用程序?

获取composer php(PHP的依赖pipe理器)运行在docker上的图像构build

注:我不再使用这个环境,所以我无法testing答案并接受答案。 对不起。 TL; DR你能指点我一个使用composer php处理PHP依赖关系的docker镜像的例子吗? 我在这篇文章中的所有问题都是关于composer php的PHP依赖工具 而不是 dockercomposer php的后继者。 我试图build立我自己的docker图像来运行wordpress作为一个composer php依赖项安装 。 我正在使用docker php image作为基础来构build一个docker镜像,我需要做的是安装composer并运行一个composer update命令,不pipe是在图像创build时间还是图像构build时间(不知道是否两者都是好)。 我可以通过手动执行所有步骤(运行Docker镜像,抨击它,复制和粘贴每一步)来运行一切。 但是当我将所有这些步骤放在一个Dockerfile上时,我不会让作曲者编写这些文件。 一段时间以来,我一直试图获得一个最小的失败的例子,但是我得到的那个并不是最小的。 我的testing是由以下内容组成(下面的链接到相关的github仓库) Dockerfile NFORMATION ~~~# # based on # https://hub.docker.com/r/richarvey/nginx-php-fpm/ # and # https://hub.docker.com/_/wordpress/ FROM php:7.0.2-apache MAINTAINER Miquel Adell <miquel@miqueladell.com> ENV WORDPRESS_VERSION 4.4.1 #~~~ DEPENDENCIES ~~~# # Add PHP repository to apt source RUN apt-get update […]

保持容器活着并使用docker-compose链接

我想用docker-compose来组合php和几个数据库(orientdb,neo4j等)。 然后进入php容器并使用shell执行命令。 个别地,我所有的容器都是水stream运行的,当我把它们合在一起的时候,它们都运行着。 但是,我不能为了我的生活找出如何保持php容器活着,所以我可以进入testing。 为了简单起见,我只使用一个数据库:orient-db。 我docker-compose.yml文件: version: '2' services: php: build: . links: – orientdb orientdb: image: orientdb:latest environment: ORIENTDB_ROOT_PASSWORD: rootpwd ports: – "2424:2424" – "2480:2480" 我的“PHP” Dockerfile : FROM php:5.6-cli ADD . /spider WORKDIR /spider RUN curl -sS https://getcomposer.org/installer | php — –install-dir=/usr/bin/ –filename=composer RUN composer install –prefer-source –no-interaction RUN yes | pecl install […]

减less自定义Docker镜像大小的最佳方法

我已经build立了一个基于官方PHP FPM图像 php:7.0.14-fpm-alpine的定制Docker镜像 我想保持图像的大小,所以我select了正式的alpine PHP-FPM版本,因为它的重量只有27 MB 。 我通过Dockerfile只安装了几个额外的软件包,图像的大小增加到277.5 MB 。 这是我的Dockerfile: FROM php:7.0.14-fpm-alpine COPY ./config/www-pool.conf /usr/local/etc/php-fpm.d/www.conf COPY ./scripts/download-composer.sh /root/download-composer.sh WORKDIR /root RUN chmod +x download-composer.sh \ && ./download-composer.sh \ && mv composer.phar /usr/local/bin/composer RUN ["mkdir", "/var/log/php-fpm"] RUN apk –update add \ autoconf g++ make \ openssl-dev \ libxml2-dev RUN pecl install \ xdebug \ mongodb […]

为什么从官方的Docker镜像的PHP-FPM不适合我?

我尝试从php:fpm运行一个新的容器php:fpm : docker run –name fpmtest -d -p 80:9000 php:fpm 默认情况下,它在Dockerfile中显示端口9000。 然后,我login到容器并创buildindex.html文件: $ docker exec -i -t fpmtest bash root@2fb39dd6a40b:/var/www/html# echo "Hello, World!" > index.html 在容器内部,我试着用curl来获得这个内容: # curl localhost:9000 curl: (56) Recv failure: Connection reset by peer 在容器外面,我得到另一个错误: $ curl localhost curl: (52) Empty reply from server

(Docker)获取错误:docker-php-source:在构builddocker文件时没有这样的文件或目录

当我试图build立docker文件在: https : //github.com/docker-library/php/blob/3f43309a0d5a427f54dc885e0812068ee767c03e/7.1/Dockerfile 命令: docker build -t php_image . 我正在执行以下错误: Step 14 : COPY docker-php-source /usr/local/bin/ lstat docker-php-source: no such file or directory 有人能帮我弄清楚这里有什么不对吗? 谢谢