docker - 使用 Docker 简化项目设置
问题描述
有一个项目由两部分组成:前端(React)和后端(NodeJS、Express、MongoDB)。我必须将 Docker 设置为simplify project set up on local machines and eliminate environment inconsistencies
.
有人可以解释一下它通常是什么意思吗?(我检查了 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:
推荐阅读
- javascript - 检查并转换电话号码
- ios - 如何在 Swift 中将 [AnyObject] 数组转换为 [Hashable] 或 [AnyHashable] 数组?
- prometheus - PromQL。如何添加来自不同指标的标签值
- php - 插入空数据Mysql的最佳方法是什么
- php - Laravel 多态关系同时存储数据
- c++11 - c ++随机设置种子失败
- react-router-v4 - 将 withTheme 包装的组件传递给 Route 时为什么会发出警告?
- mysql - 在配置文件中添加 lower_case_table_names=2 后,mysql 8.0 将启动
- python - 无法卸载“numpy”。它是一个 distutils 安装的项目,因此我们无法准确确定哪些文件属于
- java - git api 在 Java 上进行操作