Я создал простое приложение Nuxt с инструментом create-nuxt-app. Приложение использует Express.
Приложение создано и развернуто с Azure DevOps CI / CD в веб-приложении, работающем на Azure в Linux Службе приложений. Ниже конфигурации JSON веб-приложения и настроек приложения.
В соответствии с файлами журналов приложение начинает правильно прослушивать порт 8080. Но контейнер не может получить пинг от приложения.
Здесь команда docker:
docker run -d -p 1917:8080 --name foo_0_545b2402 -e WEBSITE_NODE_DEFAULT_VERSION=12-lts -e APPSETTING_WEBSITE_NODE_DEFAULT_VERSION=12-lts -e PORT=8080 -e WEBSITE_SITE_NAME=foo -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=foo.azurewebsites.net -e WEBSITE_INSTANCE_ID=59d31c5448b1dcdbbdd17806325118df2b6bbe1ce77b2e7d81899054c843b962 -e HTTP_LOGGING_ENABLED=1 appsvc/node:12-lts npm run start
Затем он продолжает регистрировать это:
INFO - Waiting for response to warmup request for container foo_0_545b2402
И наконец, регистрируется:
ERROR - Container foo_0_545b2402 for site foo did not start within expected time limit. Elapsed time = 460.1978624 sec
ERROR - Container foo_0_545b2402 didn't respond to HTTP pings on port: 8080, failing site start. See container logs for debugging.
INFO - Stoping site foo because it failed during startup.
Веб-приложение, пытающееся запустить контейнер, повторяется снова и снова безуспешно.
Я не использую пользовательские контейнеры и пробовал настройки при изменении порта expose и других docker связанных вещей я не знаю. Я не docker пользователь.
Я пробовал с Node.js приложением с Express, и оно обслуживает страницу. Я думаю, что-то связано с Nuxt или базовой Vue структурой, но я не вижу, что.
Спасибо.
Конфигурация веб-приложения:
{
"alwaysOn": true,
"apiDefinition": null,
"apiManagementConfig": null,
"appCommandLine": "npm run start",
"appSettings": null,
"autoHealEnabled": false,
"autoHealRules": null,
"autoSwapSlotName": null,
"connectionStrings": null,
"cors": null,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"detailedErrorLoggingEnabled": false,
"documentRoot": null,
"experiments": {
"rampUpRules": []
},
"ftpsState": "AllAllowed",
"handlerMappings": null,
"healthCheckPath": null,
"http20Enabled": true,
"httpLoggingEnabled": true,
"ipSecurityRestrictions": [
{
"action": "Allow",
"description": "Allow all access",
"ipAddress": "Any",
"name": "Allow all",
"priority": 1,
"subnetMask": null,
"subnetTrafficTag": null,
"tag": null,
"vnetSubnetResourceId": null,
"vnetTrafficTag": null
}
],
"javaContainer": null,
"javaContainerVersion": null,
"javaVersion": null,
"kind": null,
"limits": null,
"linuxFxVersion": "NODE|12-lts",
"loadBalancing": "LeastRequests",
"localMySqlEnabled": false,
"location": "North Europe",
"logsDirectorySizeLimit": 35,
"machineKey": null,
"managedPipelineMode": "Integrated",
"managedServiceIdentityId": null,
"minTlsVersion": "1.2",
"name": "foo",
"netFrameworkVersion": "v4.0",
"nodeVersion": "",
"numberOfWorkers": 1,
"phpVersion": "",
"preWarmedInstanceCount": 0,
"publishingUsername": "$foo",
"push": null,
"pythonVersion": "",
"remoteDebuggingEnabled": false,
"remoteDebuggingVersion": "VS2019",
"requestTracingEnabled": false,
"requestTracingExpirationTime": null,
"resourceGroup": "alpha",
"scmIpSecurityRestrictions": [
{
"action": "Allow",
"description": "Allow all access",
"ipAddress": "Any",
"name": "Allow all",
"priority": 1,
"subnetMask": null,
"subnetTrafficTag": null,
"tag": null,
"vnetSubnetResourceId": null,
"vnetTrafficTag": null
}
],
"scmIpSecurityRestrictionsUseMain": false,
"scmType": "LocalGit",
"tracingOptions": null,
"type": "Microsoft.Web/sites/config",
"use32BitWorkerProcess": true,
"virtualApplications": [
{
"physicalPath": "site\\wwwroot",
"preloadEnabled": true,
"virtualDirectories": null,
"virtualPath": "/"
}
],
"vnetName": "",
"webSocketsEnabled": false,
"windowsFxVersion": null,
"xManagedServiceIdentityId": null
}
настройки веб-приложения :
[
{
"name": "PORT",
"slotSetting": false,
"value": "8080"
},
{
"name": "WEBSITE_HTTPLOGGING_RETENTION_DAYS",
"slotSetting": false,
"value": "7"
},
{
"name": "WEBSITES_CONTAINER_START_TIME_LIMIT",
"slotSetting": false,
"value": "1800"
}
]
Вот скриншот _default_ docker .log:
