这个仓库包含了我将要提到的所有代码:https://github.com/milantimotijevic/serverless-tutorial-azure
我试图使用Azure Functions和Azurite设置一个完全Dockerized的本地开发环境,但是,Azure Functions在Docker容器中运行时不会自动重新加载,即使代码通过Docker卷更新。但是,如果我在主机上运行Azure Functions,它会重新加载。
重现步骤(自动重新加载的情况):
1.运行“npm install”安装项目依赖项
1.运行“install -g azure-functions-core-tools@3 --unsafe-perm true”以将Azure Functions作为全局包安装在主机上
1.运行“docker-compose up azurite”只启动Azurite(启用队列等)
1.运行“npm start”在主机上启动Azure Functions
1.编辑MycodeTrigger/index.js
结果:运行“npm start”的终端将显示“func”进程自动重新启动。此外,如果您使用offline-resources/命令来创建队列并将消息推送到其中,您将看到更改会自动应用。
重现步骤(无法自动重新加载的情况):
1.运行“docker-compose up”在Docker容器中启动两个服务
1.编辑MycodeTrigger/index.js
预期:运行“docker-compose up”的终端应该反映相关容器中“func”进程的重新启动。
实际:进程不会重新启动,即使文件确实被更改了。您可以通过SSHing到microservices-tutorial-azure并检查您更改的文件来确认这一点-更改将在那里(由于docker卷)。
我的主机正在运行Windows。我为Docker容器选择了“推荐”镜像。有人知道为什么进程在容器内拒绝重新启动吗?提前感谢!
2条答案
按热度按时间dxxyhpgq1#
你可以做的是在每次更改后重新构建镜像,这将重新启动azure函数。
现在,每当代码中发生一些更改时,可能不会反映为映像未重建。
请参阅以下documentation。
ee7vknir2#
您可以在容器中安装https://nodemon.io/依赖项,您的Dockerfile将如下所示:
**注意:**参数
-L
对于Container监视主机文件的变化非常重要。(https://github.com/remy/nodemon#application-isnt-restarting)