Упрощение настройки проекта с помощью Docker

#docker

Вопрос:

Существует проект, который состоит из двух частей: интерфейсной (React) и серверной (NodeJS, Express, MongoDB). Мне нужно настроить Докер на simplify project set up on local machines and eliminate environment inconsistencies .

Не мог бы кто-нибудь, пожалуйста, объяснить мне, что это обычно означает? (Я проверил ускоренные курсы докеров и кое-что знаю, но я действительно не знаю, что следует делать в моем случае)

Означает ли это, что я должен переместить связанный с внутренним кодом код вместе с базой данных в контейнеры Docker? Если это так, то это упростит настройку только для внешнего разработчика, но не для внутреннего разработчика?

Комментарии:

1. Можете ли вы уточнить «должны»?

Ответ №1:

Вы можете просто предоставить файл docker-compose.yml и уточнить шаги по созданию ваших служб, предварительно вы должны создать файл Docker для каждой из ваших служб.

Пример докера-compose.yml:

 version: "3.9"
services:
  db:
    container_name: mongodb
    ports:
      - "expose ports here"
    image: "image name related to MongoDB"
    environment:
      - "declare credintionals here"
    networks:
      - "in order to separate network visibility of backed and frontend you can declare different networks"

  backend:
    container_name: my_backend_service
    ports:
      - "expose ports here"
    build: "path to your service Dockerfile"
    environment:
      - "you can have your backend envs here"
    networks:
      - "same as your dbs network, but you can have two different networks one for db and one for *frontend* in order to separate network visibility"
    depends_on:
      - "This part declares service running priority for Docker, you should declare service names here. e.g. db"

  frontend:
    container_name: my_fortend_service
    ports:
      - "expose ports here"
    build: "path to your service Dockerfile"
    networks:
      - "same as your *backend*s network, this makes your frontend service can see only backend services"
    depends_on:
      - "This part declares service running priority for Docker, you should declare service names here"

  
networks:
    your network1:
    your network2: