docker-compose 编写

这篇博客详细记录了一次使用docker-compose进行单机部署的过程,分享了一个简单的docker-compose.yml配置文件,适用于初学者参考和复习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单记录最近部署使用的docker-compose文件,以免忘记

# 关闭
docker-compose down
# 开启,-d 表示deamon启动
docker-compose up -d

这里举一个完整简单的例子,单机部署,都没有集群,集群部署回头再补。

docker-compose.yml

version: '3.3' # 指定docker-compose 版本
services: # 要拉起的服务们
  redis: 
    image: redis # 镜像
    container_name: redis # 容器名
    command: redis-server --requirepass redisPass # 启动redis,增加密码 redisPass
    volumes: # 宿主机:容器 文件夹映射
      - /root/data/redis:/data
    networks: # 网络名,服务都在同一个网络内,就可以通过容器名互相访问
      - bd_tool_net
    restart: always # 重启

  mongo:
    image: mongo
    container_name: mongo
    # 因为镜像是不可变的,对于项目中的一些可能更改的变量
    # 我们可以通过environment参数传进去,镜像中使用MONGO_INITDB_ROOT_USERNAME即可获取
    # 这样即使我们的变量需要更改,也只需要修改docker-compose文件,无须重新build镜像
    environment: 
      - MONGO_INITDB_ROOT_USERNAME=boss # mongo 用户名
      - MONGO_INITDB_ROOT_PASSWORD=mongoPass # mongo 密码
    volumes:
      - /root/data/db:/data/db/ # mongo数据映射到宿主机持久化储存
    restart: always
    networks:
      - bd_tool_net

  bd-tool-ui: # 前端
    image: bd-tool-ui:latest
    container_name: bd-tool-ui
    depends_on: # 依赖于后端服务
      - bd-tool-api
    restart: always
    ports: # 端口映射
      - "80:80"
    networks:
      - bd_tool_net

  bd-tool-api: # 后端
    image: bd-tool-api:latest
    container_name: bd-tool-api
    depends_on: # 依赖于mongo和redis
      - mongo
      - redis
    restart: always
    # 同样吧可能更改的东西给他传进去
    environment:
      EGG_SERVER_ENV: prod
      MIGRATION_ENV: prod
      REDIS_PASS: redisPass
      MONGODB_USER: boss
      MONGODB_PASS: mongoPass
    # 需要的启动命令,这里是初始化数据并启动服务
    command: sh -c "MIGRATION_ENV=prod yarn migrations up && yarn start"
    ports:
      - "7001:7001"
    networks:
      - bd_tool_net
# 网络
networks:
  bd_tool_net:
    driver: bridge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值