亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Docker 容器中自動重啟 golang 應用程序?

如何在 Docker 容器中自動重啟 golang 應用程序?

Go
BIG陽 2023-07-31 15:01:12
我有帶有 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"


查看完整回答
反對 回復 2023-07-31
  • 1 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號