我有帶有 Golang 和 Mongo 的 Docker 容器。我想制作電報機器人,并且我想在更改源代碼時自動重新編譯/重新運行我的 go 應用程序。我嘗試使用mitranim/gow,但沒有成功。更改源代碼后,我需要使用什么來自動重新運行我的 go 應用程序?我需要任何東西似乎是用于nodejs的nodemon,但對于go這是我的docker-compose和dockerfile配置。My?host?machine?is?win10
1 回答

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
Linux 上的大多數文件監控工具都使用inotify作為首選機制。您提到的mitranim/gow工具似乎屬于同一類別。
問題在于,對 Windows 中的文件系統進行更改不會導致 Linux 來賓發布該事件。這是預料之中的,因為 Windows 不“知道”已設置監視,因此無法在文件更改時通知 Linux 容器。這是虛擬化環境或其他跨平臺/網絡文件系統共享解決方案的常見問題。
該問題的一個可能的解決方案是使用輪詢。nodemon
有一個legacyWatch
標志,可以在文件更改時運行任何命令:
在某些網絡環境中(例如運行 nodemon 的容器在已安裝的驅動器上讀取數據),您將需要使用 LegacyWatch: true 來啟用 Chokidar 的輪詢。
例子:
nodemon?--legacy-watch?<working-dir>?-e?go?--exec?"go?run?main.go"
nodemon
或者與其他監控工具結合使用,nodemon
在檢測到文件更改時觸摸文件(有點黑客攻擊):
nodemon?--legacy-watch?<working-dir>?-e?go?--exec?"touch?main.go"
- 1 回答
- 0 關注
- 145 瀏覽
添加回答
舉報
0/150
提交
取消