Лучшая практика - иметь несколько docker -компонованных файлов в репо - PullRequest
1 голос
/ 27 февраля 2020

В настоящее время я работаю над полноценным веб-проектом, который состоит из следующих компонентов:

  • База данных (MariaDB)
  • Внешний интерфейс (Angular)
  • Backend (NodeJS)

Каждый компонент должен быть развернут через docker. Для этого у меня есть Dockerfile для каждого из них. Я также определил docker-compose в хранилище root, чтобы развернуть их все вместе.

# current repo structure
|frontend/
 |src/
 |docker/
  -Dockerfile
  -docker-compose.yml
|backend/
 |src/
 |docker/
  -Dockerfile
  -docker-compose.yml
|database/
 |src/
 |docker/
  -Dockerfile
  -docker-compose.yml
-docker-compose.yml

Как вы думаете, это хорошая практика? Я не уверен, потому что я думаю, что моя нынешняя структура немного сбивает с толку. Как вы справляетесь с подобными проектами?

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

docker-compose предназначен для организации нескольких компонентов проекта в одном месте: docker -создание файла.

В вашем случае, как сказал m303945, вам не нужно многократное docker -создание файлов. Действительно, ваш основной docker-compose.yml должен вызывать Dockerfile каждого вашего компонента. Этот файл может содержать что-то вроде этого:

services:

  frontend:
    build:
      context: frontend
      dockerfile: docker/Dockerfile

  backend:
    build:
      context: backend
      dockerfile: docker/Dockerfile

  database:
    build:
      context: database
      dockerfile: docker/Dockerfile
1 голос
/ 27 февраля 2020

вам не нужно несколько docker -композиционных файлов. если вы хотите запустить указанное c приложение вместе, например, только базу данных и серверную часть, просто запустите эту команду.

docker-compose -f docker-compose-file.yml up -d database backend 

какая база данных и серверная часть - это имя службы в файле docker -compose.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...