[英]POPULAR REACT ISSUE : How to run docker container serving a reactjs app in Azure using docker-compose?
[英]docker-compose to run Azure Functions locally
我們正在構建一個系統,一些客戶將在 Azure 中運行,一些客戶將通過 docker-compose 在他們自己的硬件上運行在 Docker 中。 我們的微服務基於 Azure 函數。
我編寫了一個 docker-compose 文件來設置各種圖像(網站,Azure 函數和 RabbitMQ)
docker-compose 看起來像這樣(簡化):
version: "3"
services:
abmicroservice:
build:
context: ./AbMicroservice
depends_on:
- rabbitmq
當 docker-compose 啟動時,當 Azure Function 項目啟動時出現此錯誤:
abmicroservice_1 | 未找到工作職能。 嘗試公開您的工作類別和方法。 如果您使用綁定擴展(例如 Azure 存儲、ServiceBus、計時器等),請確保您已在啟動代碼中調用了擴展的注冊方法(例如 builder.AddAzureStorage()、builder.AddServiceBus( )、builder.AddTimers() 等)。
但是當我使用 func.exe 工具或 Visual Studio Debug 運行相同的 Azure Function 時,它運行良好。
我猜這個問題是我的各種 host.json 等和 docker-compose.yml 中的設置。
我的 Function 只是一個 hello-world 測試,在 Visual Studio 2019 運行時運行良好:
public static class TriggerFunction
{
[FunctionName("TriggerFunction")]
public static void Run(
[RabbitMQTrigger("hello")] string message,
ILogger log)
{
log.LogInformation($"************* Message received from RabbitMQ trigger: {message}");
}
}
很少有東西可以解決它:
檢查連接字符串
確保將連接字符串作為環境變量提供給 docker(查看 function.json 並且“連接字符串”的值應該是連接字符串的名稱)
{ "scriptFile": "__init__.py", "bindings": [ { "name": "msg", "type": "serviceBusTrigger", "direction": "in", "queueName": "nameOfTheQue", "connection": "connectionVariable" } ] }
這意味着您的 docker 應該有一個帶有連接字符串的環境變量“connectionVariable”(在本例中為服務總線)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.