【发布时间】:2017-11-16 18:16:34
【问题描述】:
我有以下docker-compose.yml 文件,它运行支持 PHP 的 nginx:
version: '3'
services:
nginx:
container_name: my-app-nginx
image: nginx:1.13.6
ports:
- 8080:80
volumes:
- ./nginx-default.conf:/etc/nginx/conf.d/default.conf
- ./my-app:/var/www/my-app
restart: always
depends_on:
- php
php:
container_name: my-app-php
image: php:7.1-fpm
volumes:
- ./my-app:/var/www/my-app
restart: always
/var/www/my-app 内部的 PHP 应用程序需要与一个 linux 守护进程(我们称之为 myappd)进行通信。
按照我的看法,我需要:
- 将
myappd复制到nginx容器到/usr/local/bin,使用chmod +x使其可执行并在后台运行。 - 创建一个不同的容器,将
myappd复制到/usr/local/bin,使用chmod +x使其可执行并在前台运行。
现在,我是 Docker 的新手,我正在研究和学习它,但我最好的猜测是,鉴于我正在使用 Docker Composer,那选项 2 可能是推荐的吗?鉴于我对 Docker 的了解有限,我不得不猜测这个容器需要某种基于 linux 的映像(比如 Ubuntu 或其他东西)来运行这个二进制文件。所以也许选项1是首选?或者也许选项 2 可以使用最小的 Ubuntu 映像,或者可能没有这样的映像?
无论哪种方式,我都不知道如何在作曲家文件上实现它。特别是选项 2,PHP 应用程序如何与不同容器中的守护程序通信?就像我为 nginx/php 服务所做的那样,只需“共享”一个卷(二进制文件所在的位置)就足够了吗?还是需要其他东西?
【问题讨论】:
标签: php docker nginx docker-compose daemon