Tag: PHP

500(内部服务器错误)与Laravel和Docker

我在Docker中创build了Laravel PHP应用程序。 首先,我使用Laravel应用程序 laravel new laravelDockerApp 它创build成功。我validation它是由内置服务器设置的 php artisan serve 然后用Docker设置本地环境 泊坞窗,compose.yml version: '2' services: web: build: context: ./ dockerfile: web.docker volumes: – ./:/var/www ports: – "8080:80" links: – app app: build: context: ./ dockerfile: app.docker volumes: – ./:/var/www app.docker FROM php:7-fpm RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \ && docker-php-ext-install mcrypt […]

Docker项目pipe理子项目通过符号链接

情况 我有项目A和项目B,A依靠composer phpB. B在A中实现接口的function B中有正确执行的unit testing。 现在,我想通过API来testing这一点 – 为此,我午餐项目A并通过HTTP APItesting所有function。 鉴于项目A,有自己docker-compose.yml与其他开发人员共享,我不能更改此configuration。 更宽的环境 在项目A中,我有更多的项目B.另外,我也有更多的项目A,它们大多与项目A具有相似的共享依赖项。 问题 为了不运行testing,更新B上的bug,标签和在A上运行作曲者更新有一个简单的解决scheme – 在供应商内部,我创build了符号链接来replace已安装的项目B. docker工的问题是,在安装量上,docker工人看不到符号链接(我的库)的内容。 我有 Docker for Mac – 边缘 链接 类似的问题,但build立形象 标准符号链接,没有帮助。 思路 复制项目 我想,关于将项目B复制到给定的项目A供应商,但考虑到更广泛的背景下,这是未来的解决scheme。 题 有没有可能这个设置工作,没有复制项目? 如果不是,那么: 如何pipe理特定架构中的子项目或符号链接,以积极开发项目的所有项目? 你有一些工作或其他设置的build议吗?

在构build时将$ HOSTNAME传递给Docker容器

我已经看到一些关于这个的post,但是他们没有回答“如何在构build时将一个主机的主机名传递给一个容器? 我需要在构build时(在docker文件中)而不是在创build时传递主机名的原因是因为我正在使用docker swarm,并且如果在创build服务时传递主机名,所以我只会为每个容器: $ docker service create -p <port>:<port> –hostname $HOSTNAME –replicas 4 <image> 通过在运行时传递主机名,无论容器实际运行的是什么主机,都将看起来好像它正在pipe理器节点上运行。 如何在docker文件中的docker构build过程中传递主机名值? 我需要能够查看容器中的主机名的原因是因为每次访问一个容器,我想访问一个mongo数据库,并增加容器和节点的查看计数,以显示负载平衡function一群。 我需要添加到我的泊坞窗文件? Dockerfile: FROM resin/raspberry-pi-alpine-node MAINTAINER brennansaul jamessaul7629@gmail.com RUN apk –update add nginx php5-fpm && \ mkdir -p /run/nginx ADD www /www ADD nginx.conf /etc/nginx/ ADD php-fpm.conf /etc/php5/php-fpm.conf ADD run.sh /run.sh ENV LISTEN_PORT=80 EXPOSE 80 CMD /run.sh 的index.php <html> […]

Docker文件PHP中的环境variables问题

我正在使用PHP Apache的docker文件。 我在docker文件中声明了一些环境variables,但是当我运行docker的时候,它只能得到Apache环境variables,而我的环境variables不起作用。 这里是我的docker文件。 # Install dependencies From ubuntu:16.04 RUN apt-get update -y RUN apt-get update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get -y install \ vim apache2 php7.0 php7.0-mysql php7.0-gd php7.0-mbstring libapache2-mod-php7.0 curl lynx-cur RUN service apache2 stop # Install app RUN rm -rf /var/www/html/* ADD . /var/www/html # Configure apache RUN a2enmod php7.0 […]

将Joomla网站迁移到Docker:我的图像是基于PHP还是Joomla

我正在将Joomla Web应用程序迁移到Docker。 它由一个Apache服务器,一个MySQL数据库和Joomla组成。 注意:尽pipe我的问题是针对PHP和Joomla的,但是看起来也适用于任何第一方代码与第三方依赖关系混合的情况,例如包括Django或Wordpress等许多框架。 问题: 由于我的代码混杂在Joomla自己的源文件中,所以我不知道如何将Joomla从我自己的代码中分离出来,以便能够创build一个最小的基本映像,而不包含它自己的Joomla副本。 以确切的方式迁移到Docker的整个想法来自官方Joomla图像可用。 我想我应该使用它,但我不能看到任何合理的方式来这样做,而没有两个Joomla的副本安装。 而且,即使我得到了小心,我的代码实际上到处都是如何合并我的代码到新的“Dockerized”Joomla副本? 这感觉就像我应该把我的形象从Joomla的形象,但我不知道如果没有两个Joomla的副本我怎么能做一些,所以我应该基于PHP的形象? 基本上我需要知道下一步的方式。 我一直卡在这个阻滞剂一段时间了。

PHP的cURL访问无法远程Docker中心/registry

为了方便我们的应用程序的远程CICD过程,我试图访问我们的Docker Hub / Registry,以便能够列出,标记和推送图像。 从bash脚本中使用以下内容开始: TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${UNAME}'", "password": "'${UPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) 我在PHP中创build了一些cURL,试图获得Docker Hub的令牌: $user = 'xxxxxxxx'; $pass = 'xxxxxxxx'; $namespace = 'xxxxxxxx'; $headers = array(); $headers[] = 'Content-Type: application/json'; $url = "https://hub.docker.com/v2/users/login/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, 1); […]

Docker php:fpm-install php扩展

我使用官方的php:fpm docker镜像作为我的应用程序容器的基础,所以Dockerfile启动方式如下: FROM php:fpm 在文件的后面我想要这样的东西: RUN apt-get install -y \ php7.0-gd 但是那告诉我: E: Unable to locate package php7.0-gd E: Couldn't find any package by regex 'php7.0-gd' »使用docker docker exec -it <name> /bin/bash -it docker exec -it <name> /bin/bash并执行apt-cache search php | grep gd apt-cache search php | grep gd yield: php5-gdcm – Grassroots DICOM PHP5 […]

如何在Docker上安装mcrypt

我有一个与Phalcon3和PHP 7的Docker容器。我想安装php扩展Mcrypt没有运气。 如果我做的SSH容器,并执行: apt-get update apt-get install php7.0-mcrypt 我得到以下内容: E: Unable to locate package php7.0-mcrypt E: Couldn't find any package by regex 'php7.0-mcrypt' 有没有办法让它安装?

docker和PHP:获取依赖关系(composer php)的容器

一个小背景:我是docker工人,不知道任何最佳做法。 我的任务是创build一个基于PHP的web服务,我决定使用docker-compose进行configuration。 因为我们都是花哨的开发者,我们知道 – 现在没有办法在没有使用作曲者的情况下创build一个php应用程序。 我的问题: 我应该在构build中安装依赖关系吗? 所以通过添加到我的Dockerfile中: RUN cd /app && composer install –no-interaction –prefer-source –optimize-autoloader 或者我应该在开发过程中安装依赖关系,并使用包含的依赖关系构build容器映像? 我只知道一种方法不这样做:在开发机器上本地安装依赖关系,然后构build容器。 但是,“最佳实践”将如何呢? 而且 – 因为我是这个领域的新手,我将如何为我的应用程序服务容器运行“composer require some / package”? 顺便一提 我还注意到一条消息:“不要以root /超级用户的身份运行Composer!” build造集装箱时。 我添加COMPOSER_ALLOW_SUPERUSER=1到我的环境文件(如图所示),但是这个消息仍然出现。 有没有可能不执行作为根在docker集装箱的composer php安装? 我可以忽略这个消息吗? 在此先感谢,菲利普

Docker PHP与pdo_pgsql安装问题

我对Docker非常陌生,并且踏入了我的第一个真正的项目。 我们有一个使用Codeigniter和PostgreSQL的php应用程序,效果很好。 现在我试图dockerize它,我遇到了pdo_pgsql驱动程序的一些麻烦。 我在网上find了一些帮助来获得pdo_pgsql驱动程序来安装,但它是所有php-5x的过时的解决scheme。 我似乎工作,因为我检查了phpinfo页面,我的php.ini正确加载,并说pdo_pgsql和pgsql驱动程序都安装和活动? 这是错误: 奇怪的是,当我第一次打网页时,我只得到第一个错误。 然后,如果我刷新页面第二个错误显示。 当我login到容器,并cd到它所说的文件不存在的目录时,我可以清楚地看到pdo.so , pdo_pgsql.so和pgsql.so 。 遇到错误 你已经在config / database.php文件中指定了一个无效的数据库连接组(dockerize)。 遇到一个PHP错误 严重性:核心警告 消息:PHP启动:无法加载dynamic库'/ usr / local / lib / php / extensions / no-debug-non-zts-20160303 / pgsql' – / usr / local / lib / php / extensions / no-debug-非zts-20160303 / pgsql:无法打开共享对象文件:没有这样的文件或目录 文件名:未知 这是Dockerfile : # Dockerfile FROM php:7.1.12-apache MAINTAINER […]