过去,我在Azure App Services上发布了一堆Docker应用程序,但是由于某种原因,在Azure DevOps中创建新的生成和发布管道之后,我的Docker容器将无法在Azure App Service中运行。这些特定的容器具有Linux风格。
在各种Docker映像之间进行切换,无论是使用旧管道构建的镜像,还是使用新管道构建的镜像,都不可以。
当我将确切的命令从App Service的日志文件复制粘贴到我的本地命令行中时,它工作正常。我可以使用与App Service相同的端口访问该网站。
这是我的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}
答案 0 :(得分:0)
虽然我无法确定是什么原因导致了您的问题,但这可能是因为在容器中运行ENTRYPOINT
命令时出现了错误。
您是否正在使用docker-compose.yml
文件?您的COPY
命令不能包含../
或当前目录之外的任何内容。为此,您需要通过docker build
命令或docker-compose.yml
文件来更改上下文。
我遇到一个类似的问题,即我先更改WORKDIR
然后执行COPY . .
,而不是将WORKDIR
留在~/
并执行COPY ${STAGING_DIRECTORY} .
。 / p>
在Azure中,转到“容器设置”。在下面,您会看到一条日志。您可以使用此日志来确定您遇到的问题。
它看起来像这样:
2018_10_16_RD00155DFE4342_default_docker.log:
2018-10-16T16:14:33.084558195Z throw err;
2018-10-16T16:14:33.084568395Z ^
2018-10-16T16:14:33.084576596Z
2018-10-16T16:14:33.084584396Z Error: Cannot find module '/home/vsts/work/1/a/publish'
2018-10-16T16:14:33.084592096Z at Function.Module._resolveFilename (module.js:548:15)
2018-10-16T16:14:33.084599797Z at Function.Module._load (module.js:475:25)
2018-10-16T16:14:33.084607297Z at Function.Module.runMain (module.js:694:10)
2018-10-16T16:14:33.084614697Z at startup (bootstrap_node.js:204:16)
2018-10-16T16:14:33.084622297Z at bootstrap_node.js:625:3
2018_10_16_RD00155DFE4342_docker.log:
2018-10-16 16:14:01.928 ERROR - Container [CONTAINER_NAME] for site [APP_SERVICE_NAME] has exited, failing site start
2018-10-16 16:14:27.665 INFO - Starting container for site
2018-10-16 16:14:27.666 INFO - docker run -d -p 26257:80 --name [CONTAINER_NAME] -e DOCKER_CUSTOM_IMAGE_NAME=[...]
2018-10-16 16:14:29.735 ERROR - Container [CONTAINER_NAME] for site [APP_SERVICE_NAME] has exited, failing site start
2018-10-16 16:14:31.998 INFO - Starting container for site
2018-10-16 16:14:31.999 INFO - docker run -d -p 3225:80 --name [CONTAINER_NAME] -e DOCKER_CUSTOM_IMAGE_NAME=[...]
2018-10-16 16:14:34.009 ERROR - Container [CONTAINER_NAME] for site [APP_SERVICE_NAME] has exited, failing site start
*_default_docker.log
文件具有您的Docker文件弹出的错误,而*_docker.log
具有来自Azure的常规错误消息。