我过去在Azure应用服务上发布了一系列Docker应用,但由于某种原因,在Azure DevOps中创建新的构建和发布管道后,我的Docker容器无法在Azure应用服务中运行。这些特定的容器是Linux风格的。
在各种Docker镜像之间切换,任何使用旧管道构建的镜像都可以工作,但使用新管道构建的镜像则不行。
当我将AppService日志文件中的命令复制粘贴到本地命令行时,它工作得很好。我能够访问该网站作为相同的端口作为应用程序服务。
下面是我的Dockerfile:
FROM node:8.12.0-alpine
ARG BUILD_VERSION
ENV BUILD_VERSION ${BUILD_VERSION}
ENV LOCAL_DEVELOPMENT false
ENV NODE_ENV production
ARG STAGING_DIRECTORY
WORKDIR ~/
COPY ${STAGING_DIRECTORY} .
ENTRYPOINT node . server ${BUILD_VERSION}
字符串
2条答案
按热度按时间jdgnovmf1#
我在将NextJS应用程序部署到Azure Web服务时遇到了此问题。
当应用程序启动时,我会收到以下日志:
字符串
我是这样解决的:
我所要做的就是在
WEBSITES_PORT
的配置下添加一个新的应用程序设置,等于我的应用程序正在侦听的端口,即端口3000
,所以我有:型
然后我从我的CICD工具重新部署了应用程序,它工作得很好。
eaf3rand2#
虽然我不能确定是什么导致了你的问题,但可能是因为在你的容器中运行
ENTRYPOINT
命令时出错了。有没有可能你使用的是
docker-compose.yml
文件?您的COPY
命令不能包含../
或当前目录之外的任何内容。为此,您需要通过docker build
命令或docker-compose.yml
文件更改上下文。我有一个类似的问题,我改变了
WORKDIR
,然后做了COPY . .
,而不是离开WORKDIR
在~/
和做COPY ${STAGING_DIRECTORY} .
。在Azure中,转到“容器设置”。在下面,你会看到一根木头。您可以使用此日志确定您遇到的问题。
它看起来像这样:
字符串
*_default_docker.log
文件有你的Docker文件吐出的错误,而*_docker.log
有来自Azure的通用错误消息。