我想在启动容器上运行NGINX和PHP-FPM,但是我似乎不能这样做.这是我的Dockerfile: FROM php:7-fpm-alpine EXPOSE 9080 8000 EXPOSE 9088 80 WORKDIR /var/www COPY . . RUN apk add nginx composer php7-fpm && \ composer install --no-progress && \ mkdir -p /etc/nginx /etc/nginx/sites-available /etc/nginx/sites-enabled /run/nginx && \ ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf && \ cp nginx.conf /etc/nginx/conf.d/default.con
以下是关于 dockerfile 的编程技术问答
尝试使用Docker-Compose启动多个容器时,我有问题: dockerfile: FROM nginx:1.9 ADD ./nginx-sites/default /etc/nginx/sites-available/default docker-compose.yml: version: "2" services: web: build: . ports: - "80:80" volumes: - ./src:/var/www links: - fpm fpm: image: php:7-fpm volumes: - ./src:/var/www 当我使用docker-compose up启动应用程序时,我会收到以下错误: ERROR: Container command not found or does not exist. 希望在这个问
我有下一个docker-compose文件: nginx: build: . ports: - "80:80" - "443:443" links: - fpm fpm: image: php:fpm ports: - "9000:9000" Dockerfile命令列表是: FROM nginx ADD ./index.php /usr/share/nginx/html/ # Change Nginx config here... nginx服务器工作正常,我可以在http://localhost/index.html上看到默认的HTML页面,但不要执行PHP脚本.因此,当我获得http://localhost/index.php - 浏览器下载PHP文件而不是执行它们时. 在我的情况下,如何使用自定义Nginx配置执行PHP脚本? 解决方案 您
docker 最佳实践指导说: " ...您只能在一个容器中运行一个过程..." NGINX和PHP-FPM应该在单独的容器中运行吗?还是这意味着微服务体系结构仅在容器中运行一个服务或"应用程序"? 将这些服务在一个容器中似乎更容易部署和维护. 解决方案 根据用例,您 can 在一个容器中运行多个过程,尽管我不建议这样做. 从某种意义上说,在不同的容器中运行它们更简单.保持容器较小,无状态以及一份工作周围的工作,使其更容易维护所有工作.让我告诉您我与容器的工作流程如何处于类似情况. so: 我有一个带有NGINX的容器,它暴露于外界(:443,:80).在此级别上,管理配置,TLS证书,加载平衡器选项等很简单. 一个带有应用程序的一个(或更多)容器.在这种情况下,该应用程序具有PHP-FPM容器. Docker Image是无状态的,容器安装并共享静态文件的卷,等等.此时,您可以随时销毁和重新创建应用程序容器,使负载平衡器启动和运行.另外,您
我有 phpdocker生成的docker容器. learn-php-mysql: image: mysql:5.7 container_name: learn-php-mysql volumes: - "./.data/db:/var/lib/mysql" restart: always environment: MYSQL_ROOT_PASSWORD: learning MYSQL_DATABASE: learning MYSQL_USER: learning MYSQL_PASSWORD: learning learn-php-webserver: image: phpdockerio/nginx:latest container_name: learn-php-webserver volumes: - ./code:/code - ./nginx/nginx.conf:/etc/nginx
问题 我正在尝试使用Docker Windows来设置我的开发环境,以与WordPress一起使用.我正在使用自定义Dockerfile组成的Docker.这在MacOS上非常有效. 在Windows上使用完全相同的Docker设置,尽管在WordPress中为我提供了这些消息. 尝试上传媒体 尝试更新WordPress 显然,Worpress没有正确的文件权限. 我尝试的 1.检查Docker是否有Windows设置并升级到WSL 2 我现在正在使用基于WSL 2的引擎,它应该给出完整的根本权限到系统上的所有文件.当我首次使用基于Hyper-V-基于Hyper-V-的后端时,我升级到WPL 2(当然,使用正确的文件权限设置),我试图通过升级来解决问题.没有运气. 2.实验chmod和chown 首先,我在Dockerfile中添加了chmod -R 777 /var/www/html/.据我所知,这应该给所有文件权限赋予root.它没有任何效果.所
我目前正在学习Docker的过程中.阅读文档和一些文章后,我显然有更多的问题,而不是答案.目前对我来说最吸引人的是: 之间有什么区别 FROM some:docker-image 在Dockerfile和 中 image: digitalocean.com/php 在docker-compose.yml 中 我确实知道他们应该抓住图像并从中创建一个容器.我不明白的是,如果我们同时同时指定这两个情况,会发生什么: version: '3' services: #PHP Service app: build: context: . dockerfile: Dockerfile image: digitalocean.com/php docker-compose.yml和Dockerfile都有图像. 这些图像不同时会发生什么? Docker-compose.yml会一直获胜,并为那一项服务而获胜?它将仅使用此"顶
当我尝试运行php:docker上的apache容器时,我会得到此警告,请想知道如何解决此问题. AH00558:Apache2:无法可靠地确定服务器的完全 合格的域名,使用172.17.0.2.设置" Servername" 全球指示以压制此消息AH00558:Apache2:可以 无法可靠地确定服务器的完全合格的域名 172.17.0.2.在全球范围内设置" Servername"指令以抑制此消息[星期一2月19日14:18:21.041074 2018] [MPM_PREFORK:请注意] [PID 1] AH00163:Apache/2.4.10(Debian)PHP/7.0.27配置 - 恢复 正常操作[星期一2月19日14:18:21.041534 2018] [核心:注意] 1] ah00094:命令行:'apache2 -d前景' dockerfile: FROM php:7.0-apache COPY . /var/www/html/ EXPOSE
我有以下docker-compose.yml web: image: nginx:1.17.1-alpine ports: - "80:80" volumes: - ./code:/code - ./site.conf:/etc/nginx/conf.d/site.conf links: - php php: build: . volumes: - ./code:/code links: - mysql mysql: image: yobasystems/alpine-mariadb:latest ports: - "3306:3306" volumes: - ./mysql:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=password 和以下dockerfile FROM php:7.1.0-fpm
我想基于官方php,我想使用php-redis扩展构建我的php-fpm图像Docker image, for example, using this Dockerfile: php :5.6-fpm . 文档说我可以通过这种方式安装扩展名,手动安装依赖关系: FROM php:5.6-fpm # Install modules (iconv, mcrypt and gd extensions) RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ && docker-php-ext-install iconv mcrypt \ && docker-php-ext-configure gd --with-freetype-d
我正在尝试使用docker-compose来汇总我的php.ini文件,以便我可以在本地机器上飞行更改,以查看它如何影响主机机器.不幸的是,到目前为止,我能够将PHP.Ini文件放入容器中的唯一方法是直接在Dockerfile的创建期间. 附加是在下面的当前设置的容器正常运行的图像. 我的dockerfile在下面: FROM ubuntu:14.04 MAINTAINER Joe Astrahan VOLUME ["/var/www"] RUN apt-get update && \ apt-get install -y software-properties-common && \ apt-get update && \ apt-get install -y \ apache2 \ curl \ libcurl3 \ lib
我正在尝试使用nginx&php7在Docker上设置Magento2. I've added a custom php.ini file as recommended by the PHP7 Docker image.我可以从phpinfo.php看到它正在加载我的php.ini文件,但我的更新都没有. 应该是: memory_limit = 2G max_execution_time = 800 我已经检查了PHP容器,我可以看到有正确的设置的php.ini文件,或者我认为? $ docker exec -it mymagento2docker_php_1 /bin/bash # cat /usr/local/etc/php/php.ini
我正在为Symfony应用程序构建Docker映像.在此图像中,我想将Symfony日志传输到Stdout.因此,类似于NGINX日志的配置方式,我将此行添加到我的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致命错误:带有消息"流或文件"的未被发现的异常"意外事件" 'in/var/www/project/app/cache/prod/classes.php:5808 stack Trace: #0/va
我需要在一个Dockerfile中将php-fpm与Nginx相结合以进行生产部署. 所以最好: (1)使用php:7.1.8-fpm启动dockerfile,然后在其顶部安装nginx图像层? (2),或者您建议使用nginx映像,然后使用apt-get安装php-fpm? ps:我没有用于生产部署的Docker-Compose构建选项.在我的开发环境中,我已经使用docker-compose并轻松地从两个图像中轻松地构建了多容器应用程序.我们的组织DevOps不支持针对产品环境的基于Docker-Compose的部署. 解决方案 NGINX安装比PHP容易得多,因此您应该更容易将NGINX安装到现成的官方PHP映像中.这是Dockerfile的一个示例,显示了如何通过安装一些PHP扩展的示例来达到目标: FROM php:7.2-fpm RUN apt-get update -y \ && apt-get install -y ng
tl; dr 您能指出我使用作曲家处理PHP依赖性的Docker图像的示例吗? 我在这篇文章中的所有问题都涉及作曲家php依赖工具 不是 docker-composer fig>的继任者em>. 我正在尝试构建自己的docker映像以运行我正在努力使用Docker PHP图像作为基础构建Docker映像,而我需要做的是安装作曲家并在图像创建时间或图像构建时间上运行Composer Update命令(不知道是否两者都可以). 我可以通过手动执行所有步骤(运行Docker Image,击打并复制和粘贴每个步骤). 但是,当我将所有这些步骤都放在Dockerfile上时,我没有让作曲家写文件. 我一直在尝试获得一个最小的失败示例,但我所拥有的不是最低. 我的测试由以下内容组成(下面的相关github存储库链接) dockerfile NFORMATION ~~~# # based on # https://hub.docker.com/r/ri
任何人都可以帮助我解决这个问题. 当我尝试从dockerfile for laravel应用程序创建docker映像时,我会得到此错误: 检查oniguruma ...否 配置:错误:软件包要求(Oniguruma)未满足: No package 'oniguruma' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. 态 这是我的dockerfile:
我正在尝试通过Windows 7计算机上的Docker容器来设置开发人员环境. 我已经为Windows安装了Docker工具箱. 我有一个带有apache和php 5.6的图像,这里是: FROM php:5.6.15-apache RUN apt-get update && apt-get install -y \ apt-utils vim git php5-mysql php5-memcache php5-memcached php5-intl \ wget RUN apt-get install libapache2-mod-php5 -y -o Dpkg::Options::="--force-confdef" RUN docker-php-ext-install mbstring RUN docker-php-ext-install pdo pdo_mysql RUN apt-get install libcurl4-gnutls-dev -y RUN d
我正在使用docker创建一个容器来测试我的Mac上构建的Web应用程序,并在Mac上构建了MySQL.我的PHP应用程序是使用用于MVC和路由的无脂肪框架构建的.我有两个Dockerfiles,一个用于MySQL,一个用于PHP.我已经成功使用了测试Docker应用程序,因此我相信我的图像已正确安装. 错误的主要部分: Internal Server Error SQLSTATE[HY000] [2002] No such file or directory [fatfree/lib/DB/SQL.php:466] PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password',array(1002=>'SET NAMES utf8;')) [fatfree/app/Controllers/Controller.php:24] DB\SQL->__construct(
我是一个完整的Docker新手,但必须维护现有系统.我正在使用的Dockerfile如下: FROM php:5.6-apache RUN docker-php-ext-install mysql mysqli RUN apt-get update -y && apt-get install -y sendmail RUN apt-get update && \ apt-get install -y \ zlib1g-dev RUN docker-php-ext-install mbstring RUN docker-php-ext-install zip RUN docker-php-ext-install gd 当我运行'docker build [siteName]'一切似乎都还可以,直到我得到错误: configure: error: png.h not found. The command '/bin/sh -c docke
我试图链接2个单独的容器: nginx:最新 php:fpm 问题是PHP脚本不起作用.也许PHP-FPM配置不正确. 这是源代码,它在我的存储库中.这是文件docker-compose.yml: nginx: build: . ports: - "80:80" - "443:443" volumes: - ./:/var/www/test/ links: - fpm fpm: image: php:fpm ports: - "9000:9000" 和Dockerfile我用来基于nginx One构建自定义图像: FROM nginx # Change Nginx config here... RUN rm /etc/nginx/conf.d/default.conf ADD ./default.conf /etc/nginx/