惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

Kevin's Castle

更换网站SSL证书 – Kevin's Castle 记录一次二级路由和主路由互相访问的折腾史 – Kevin's Castle 解决部分笔记本deepin上声音小 – Kevin's Castle 开源社区中心:9月团建活动 – Kevin's Castle 开源社区中心:5月团建活动 – Kevin's Castle 社区工作的一些感悟 – Kevin's Castle 不忘初心,方得始终 – Kevin's Castle 2021,重新起航 – Kevin's Castle
鼓捣docker compose yml文件 – Kevin's Castle
Kevin · 2026-01-24 · via Kevin's Castle
# 指定 Docker Compose 文件的版本,3.8 是一个稳定且功能完善的版本

version: '3.8'

# 定义所有的服务

services:

  # 定义名为 web 的服务(应用主服务)

  web:

    # 根据当前目录(.)下的 Dockerfile 构建镜像

    build: .

    # 端口映射:将主机的 8000 端口映射到容器内的 8000 端口

    ports:

      - "8000:8000"

    # 数据卷挂载(目录映射)

    volumes:

      # 将主机当前目录挂载到容器内的 /app 目录(代码热更新)

      - .:/app

      # 将名为 static_volume 的数据卷挂载到容器内的 /app/static 目录(保存静态文件)

      - static_volume:/app/static

    # 设置环境变量:开启 DEBUG 模式

    environment:

      - DEBUG=True

    # 从 .env 文件中加载额外的环境变量(优先级高于上面的 environment)

    env_file:

      - .env

    # 依赖关系:web 服务必须在 db 和 redis 服务启动后才启动

    depends_on:

      - db

      - redis

  # 定义名为 db 的服务(MySQL 数据库)

  db:

    # 使用官方的 mysql:8.0 镜像

    image: mysql:8.0

    # MySQL 环境变量配置

    environment:

      # 设置 MySQL root 用户的密码

      MYSQL_ROOT_PASSWORD: rootpass

      # 自动创建名为 app_db 的数据库

      MYSQL_DATABASE: app_db

    # 数据卷挂载:将 mysql_data 卷挂载到容器的 MySQL 数据目录

    volumes:

      - mysql_data:/var/lib/mysql

    # 健康检查:确保 MySQL 服务正常运行后才对外提供服务

    healthcheck:

      # 执行 mysqladmin ping 命令检查服务状态

      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]

      # 检查间隔:每 5 秒检查一次

      interval: 5s

      # 超时时间:3 秒内无响应则判定为失败

      timeout: 3s

      # 重试次数:最多重试 5 次,失败则判定服务不健康

      retries: 5

  # 定义名为 redis 的服务(Redis 缓存)

  redis:

    # 使用轻量的 redis:alpine 镜像(基于 Alpine Linux)

    image: redis:alpine

    # 数据卷挂载:将 redis_data 卷挂载到容器的 Redis 数据目录

    volumes:

      - redis_data:/data

    # 启动命令:启动 Redis 服务并设置密码为 yourpassword

    command: redis-server --requirepass yourpassword

# 定义所有需要持久化的卷(Volume)

volumes:

  # 存储应用静态文件的卷

  static_volume:

  # 存储 MySQL 数据的卷

  mysql_data:

  # 存储 Redis 数据的卷

  redis_data: