首页
/ Excalidraw项目Docker开发环境部署指南

Excalidraw项目Docker开发环境部署指南

2025-07-05 00:48:29作者:翟江哲Frasier

Excalidraw是一款开源的虚拟白板工具,可以让用户轻松绘制手写风格的图表。本文将详细介绍如何使用Docker Compose快速搭建Excalidraw的开发环境,帮助开发者快速上手项目开发。

环境准备

在开始之前,请确保你的系统已经安装了以下软件:

  • Docker 19.03+
  • Docker Compose 1.27+

Docker Compose文件解析

Excalidraw提供的docker-compose.yml文件定义了一个完整的开发环境容器配置,下面我们逐项解析其关键配置:

服务定义

services:
  excalidraw:
    build:
      context: .
      args:
        - NODE_ENV=development

这部分定义了Excalidraw服务,使用当前目录下的Dockerfile构建镜像,并传递NODE_ENV=development构建参数,确保构建的是开发环境。

容器配置

container_name: excalidraw
ports:
  - "3000:80"
restart: on-failure
stdin_open: true
  • container_name指定了容器名称
  • ports将容器内的80端口映射到主机的3000端口
  • restart设置容器在失败时自动重启
  • stdin_open保持标准输入打开,方便交互

健康检查

healthcheck:
  disable: true

这里禁用了健康检查,在开发环境中通常不需要。

环境变量

environment:
  - NODE_ENV=development

设置容器运行时环境变量,确保应用运行在开发模式。

卷挂载

volumes:
  - ./:/opt/node_app/app:delegated
  - ./package.json:/opt/node_app/package.json
  - ./yarn.lock:/opt/node_app/yarn.lock
  - notused:/opt/node_app/app/node_modules

这是开发环境配置的核心部分:

  1. 将当前目录挂载到容器内的/opt/node_app/app目录,使用delegated模式提高性能
  2. 单独挂载package.json和yarn.lock文件
  3. 使用命名卷notused来覆盖node_modules目录,避免主机和容器间的冲突

部署步骤

  1. 克隆Excalidraw项目到本地
  2. 进入项目目录
  3. 执行以下命令启动开发环境:
docker-compose up -d
  1. 等待构建完成后,访问http://localhost:3000即可看到Excalidraw应用

开发工作流

使用这个Docker Compose配置的优势在于:

  • 本地代码变更会实时反映在容器中
  • 开发环境与生产环境一致,避免"在我机器上能运行"的问题
  • 依赖隔离,不会污染主机环境

当需要安装新的依赖时:

  1. 在主机上修改package.json
  2. 在容器内执行yarn install
  3. 变更会自动同步

常见问题解决

  1. 端口冲突:如果3000端口被占用,可以修改docker-compose.yml中的端口映射
  2. 构建失败:检查网络连接,确保能正常下载Docker镜像
  3. 文件权限问题:在Linux系统上可能需要调整挂载目录的权限

总结

通过这个Docker Compose配置,开发者可以快速搭建Excalidraw的开发环境,专注于功能开发而不必担心环境配置问题。这种容器化的开发方式也便于团队协作,确保所有开发者使用相同的环境配置。