Совместное использование установок между Docker-контейнерами и общими вопросами архитектуры - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь перейти от использования бродячей установки к докеру.Я прочитал приличный кусок докера Deepdive и кучу документации.Я пытаюсь использовать docker-compose для связывания вещей.

Итак, изначально у меня были только контейнеры db и php-apache.Composer, npm, gulp, git, node и все остальное тоже были установлены там.Но это казалось неправильным?Поэтому я попытался разбить php и apache на их собственный контейнер и вместо этого «поцарапать», где любые биты и бобы командной строки могут запускаться подобно vm.Поэтому в Dockerfile для этого я пытаюсь установить composer, npm и некоторые другие вещи.Но я не думаю, что собираю эти контейнеры должным образом, проблема, с которой я сейчас сталкиваюсь, заключается в том, что моя установка php из контейнера php-apache не может быть использована для установки composer с нуля.

Буду признателен за несколько советов о том, как мне лучше всего поступить, я не могу найти в Интернете ни одного примера, подобного этому (что действительно странно, так как это обычный набор ламп).Как мне это структурировать?

version: '3'
services:
  scratch:
    container_name: scratch
    build: ./docker/scratch
    volumes:
    - .:/var/www/html
    depends_on:
    - db
    - php-apache
    links:
    - db
    - php-apache

  php-apache:
    container_name: php-apache
    build: ./docker/php-apache
    ports:
      - 80:80
    volumes:
      - .:/var/www/html
      - ./docker/vhosts:/etc/apache2/sites-available

  db:
    container_name: db
    build: ./docker/mysql
    ports:
      - 3306:3306
    volumes:
      - db:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: main
      MYSQL_USER: root
      MYSQL_PASSWORD: root
    restart: always

volumes:
    db:
      driver: local
...