Отказ от ответственности: Я публикую это здесь, потому что люди начали голосовать, чтобы закрыть этот вопрос на SO как «не по теме». Хотя некоторые люди считают, что вопросы Docker следует публиковать в SO, а не в SF, другие верят в обратное.
У меня есть следующие docker-compose.yml
файл, который запускает nginx с поддержкой PHP:
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
Приложение PHP внутри /var/www/my-app
должен взаимодействовать с демоном 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? Или требуется что-то еще?