在本地,我们可以使用 Docker for Windows 或者 Docker for Mac 作为应用的开发环境。不过如果你打算使用 Docker 的数据卷存储应用的代码,特别是应用的文件比较多,比如 Drupal ,在运行它的时候你会觉得特别慢。这是因为 Docker for Windows 与 Docker for Mac 都使用了本地化的虚拟技术,这是为了给我们提供一个更顺流的体验,但是数据卷的性能是个暂时没能解决的问题。我找到了一个解决方法,就是使用 Unison 同步文件,暂时只在 macOS 上测试过。 安装 Unison 与必备 在 macOS 上安装了 Homebrew 以后,可以很容易用它安装 Unison 。另外你还需要让 Unison 可以监视文件的变化,当有变化时就去执行同步的动作,这些再安装一下 unison-fsmonitor 。 # 安装 unison # 安装 unox 的依赖 # unox 是在 macOS 上用的 unison-fsmonitor 脚本 我在 github 上有个叫 nest 的仓库,它是 Docker Compose 的一个可以运行一般的 PHP 应用的环境,它的 use-unison-sync-app-files 分支上测试了使用 Unison 同步应用文件的方法。 1 - 克隆仓库 git clone -b use-unison-sync-app-files git@github.com:ninghao/nest.git cd nest # 构建 Compose 里用的镜像 # 启动 Compose 里描述的服务 # 进入带 drush 工具的容器 # 下载 Drupal # 修改一下权限,不然 Drupal 不能写文件 # 文件:services/nginx/config/default.conf root /mnt/app/drupal; # 直接在本地上执行 # 直接在本地上执行 # 先同步一下 Drupal 的文件 # 监视文件的变化 # 在浏览器打开 |