首页 > 解决方案 > 使用 Docker 简化项目设置

问题描述

有一个项目由两部分组成:前端(React)和后端(NodeJS、Express、MongoDB)。我必须将 Docker 设置为simplify project set up on local machines and eliminate environment inconsistencies.

有人可以解释一下它通常是什么意思吗?(我检查了 Docker 速成课程并且知道一些东西,但我真的不知道在我的情况下应该做什么)

这是否意味着我必须将与后端代码相关的数据库连同数据库一起移动到 Docker 容器?如果是这样,那么它只会简化前端开发人员的设置,而不是后端开发人员?

标签: docker

解决方案


您可以简单地提供一个docker-compose.yml文件并阐明构建服务的步骤,您必须事先为每个服务创建一个Dockerfile

示例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:

推荐阅读