Como executar o daemon linux no contêiner vinculado a outro contêiner com o docker-compose?

1

Aviso: estou postando isso aqui porque as pessoas começaram a votar para fechar esta pergunta no SO como "fora do tópico". Embora algumas pessoas acreditem que as perguntas do Docker devem ser postadas no SO, em oposição ao SF, outras acreditam no contrário.

Eu tenho o seguinte arquivo docker-compose.yml que executa nginx com suporte a 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

O aplicativo PHP dentro de /var/www/my-app precisa se comunicar com um daemon do Linux (vamos chamá-lo de myappd ).

Do jeito que eu vejo, eu preciso:

  1. Copie o myappd no contêiner nginx para /usr/local/bin , torne-o executável com chmod +x e execute-o em segundo plano.
  2. Crie um contêiner diferente, copie myappd para /usr/local/bin , torne-o executável com chmod +x e execute-o em primeiro plano.

Agora, sou novo no Docker e estou pesquisando e aprendendo sobre isso, mas meu melhor palpite, já que estou usando o Docker Composer, é que a opção 2 é provavelmente a recomendada? Dado o meu conhecimento limitado sobre o Docker, eu teria que adivinhar que esse contêiner exigiria algum tipo de imagem baseada no Linux (como o Ubuntu ou algo assim) para executar este binário. Então talvez a opção 1 seja preferida? Ou talvez a opção 2 seja possível com uma imagem mínima do Ubuntu ou talvez seja possível sem essa imagem?

De qualquer forma, não tenho ideia de como eu implementaria isso no arquivo do compositor. Especialmente a opção 2, como o aplicativo PHP se comunica com o daemon em um contêiner diferente? Apenas "compartilhar" um volume (onde o binário está localizado) como eu fiz para serviços nginx / php seria suficiente? Ou algo mais é necessário?

    
por Ricardo Amaral 16.11.2017 / 19:29

0 respostas