Webアプリケーションをデプロイしようとすると、次のエラーが発生します。
エラー-サイトXXXのコンテナXXX_0が予期された制限時間内に開始しませんでした。経過時間= 1800.4463925秒
ノードアプリをデプロイしようとしています。 .deploymentファイルで自動デプロイメントを使用する。 .deploymentファイルは次のようになります。
# 1. KuduSync
if [[ "$IN_PLACE_DEPLOYMENT" -ne "1" ]]; then
"$KUDU_SYNC_CMD" -v 50 -f "$DEPLOYMENT_SOURCE" -t "$DEPLOYMENT_TARGET" -n "$NEXT_MANIFEST_PATH" -p "$PREVIOUS_MANIFEST_PATH" -i ".git;.hg;
.deployment;deploy.sh"
exitWithMessageOnError "Kudu Sync failed"
fi
# 2. Select node version
selectNodeVersion
# 3. Install npm packages for root directory
if [ -e "$DEPLOYMENT_TARGET/package.json" ]; then
cd "$DEPLOYMENT_TARGET"
# echo "Running $NPM_CMD install --production for root directory"
# eval $NPM_CMD install --production
echo "Running $NPM_CMD install --production for root directory"
eval $NPM_CMD install
exitWithMessageOnError "npm failed"
##################
echo Building App...
eval $NPM_CMD run build
##################
echo Starting App...
# eval $NPM_CMD run start
# cd - > /dev/null
fi
#####################################################################################
echo "Finished successfully."
Package.jsonファイルには、次のスクリプトがあります。
"scripts": {
"dev": "node server.js",
"build": "next build",
"start": "echo 'work!!' && NODE_ENV=production && node server.js"
}
また、server.jsは次のとおりです。
const {
createServer
} = require('http')
const next = require('next')
const app = next({
dev: process.env.NODE_ENV !== 'production'
})
const routes = require('./routes')
const handler = routes.getRequestHandler(app)
console.log("HEYYYY");
// Without express
app.prepare()
.then(() => {
console.log("Ready on Localhost:80!!!");
createServer(handler)
.listen(80, (err) => {
if (err) throw err;
console.log("Ready on Localhost:80");
});
})
私が研究から集めたのは、
解決するには(1)WEBSITES_CONTAINER_START_TIME_LIMITを1800(最大)に設定します
(2)を解決するには、(アプリの設定で)WEBSITES_PORTに値「80」を設定して、そのポートを公開します。 (ドキュメントによる)
私が試すべき他のことはありますか?
PSデフォルトのDockerログファイルは以下を出力します。
2018-10-15T14:32:59.946431939Z > [email protected] start /home/site/wwwroot
2018-10-15T14:32:59.946455839Z > echo 'work!!' && NODE_ENV=production && node server.js
2018-10-15T14:32:59.946462839Z
2018-10-15T14:33:00.249554126Z work!!
2018-10-15T14:34:41.634101502Z HEYYYY
2018-10-15T14:35:38.838555689Z DONE Compiled successfully in 48099ms14:35:38
2018-10-15T14:35:38.838868291Z
2018-10-15T14:35:39.406086808Z Ready on Localhost:80!!!
2018-10-15T14:35:39.460029162Z Ready on Localhost:80
私にとっては両方を設定する-Port 80
および-WEBSITES_PORT 80
in Azure App Service Deploy
仕事、 App Settings
Azure開発のセクションが役立ちました。 Dockerを8000ではなくポート80で開始するようにしました。それは、そのタスクのアプリ設定使用法の example にあります。