#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: