Docker-sync 解决 DockerMac 文件读取慢的问题

最近的新项目框架选择了Swoft,开发环境部署在Docker中。每次修改代码后,执行http restart都需要4~5秒钟重新加载代码。本来觉得耗时久是正常现象,只能忍耐。但是部署测试服务器(Centos 7.6)的时候发现仅耗时0.x秒,查询后发现是Docker在mac上的固有问题,使用 Docker-sync 可以解决以上问题。

参考文章 WangMao's Blog《Dowcker 优化之 Docker-sync 解决 Docker 挂载缓慢》


安装 docker-sync 和 unison 策略支持:

~ gem install docker-sync  # 可能需要先执行 brew install gem
~ brew install unison
~ brew install eugenmayer/dockersync/unox

在项目根目录创建配置文件docker-sync.yml

version: '2'

options:
  verbose: false

syncs:
  lookrobot-api-sync:
    # 需要挂载的目录
    src: './'
    # 同步策略 macOS 推荐 native_osx,Windows 配置为 unison
    sync_strategy: native_osx
    # 这里的用户 ID 为 1000,请确认你的 php-fpm 为同一个用户
    sync_userid: 1000
    # 忽略的文件
    sync_excludes: [
      '.gitignore',
      '.git/',
      '.DS_Store',
    ]

修改docker-compose.yml文件

这里我选择复制一个compose文件,在up || down时需要加-f参数

version: '3.4'
volumes:
  lookrobot-api-sync:
    external: true
services:
  swoft:
    image: swoft/swoft
#    for local develop
    command: php -S 127.0.0.1:13300
    container_name: swoft-srv
    environment:
      - APP_ENV=dev
      - TIMEZONE=Asia/Shanghai
      - REDIS_HOST=redis-srv
      - REDIS_PORT=16379
      - MYSQL_HOST=mysql-srv
      - MYSQL_PORT=3306
      - MYSQL_USERNAME=root
      - MYSQL_PASSWORD=123456
      - EMQ_HOST=emqx-srv
    restart: always
    depends_on:
      - mysql
      - redis
      - emqx
    ports:
      - "18306:18306"
      - "18307:18307"
      - "18308:18308"
    volumes:
      - lookrobot-api-sync:/var/www/swoft
      # - ./runtime/ng-conf:/etc/nginx
      # - ./runtime/logs:/var/log

启动同步容器及重新启动服务

$ docker-compose down
$ docker-compose -f docker-compose-withsync.yml build
$ docker-sync clean
$ docker-sync start
$ docker-compose -f docker-compose-withsync.yml up -d

注意事项

  1. 执行composer update后要再次执行docker-sync clean 及 start重新同步文件。
  2. 更新MacOS Catalina后可能需要再次安装docker-sync——sudo gem install docker-sync
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇