Azure容器生成错误';503';原因';站点不可用'; 问题

Azure容器生成错误';503';原因';站点不可用'; 问题,azure,docker,docker-compose,dockerfile,azure-container-registry,Azure,Docker,Docker Compose,Dockerfile,Azure Container Registry,我已在运行windows 10的本地计算机上建立了docker映像 运行docker compose build、docker compose up-d和docker compse log-f确实会生成预期结果(无错误) 通过运行winpty docker container run-i-t-p 8000:8000--rm altf1be.plotly.docker compose:2019-12-17,应用程序可以正确运行 我将docker映像上载到私有Azure容器注册表中 我根据do

我已在运行windows 10的本地计算机上建立了docker映像

  • 运行
    docker compose build
    docker compose up-d
    docker compse log-f
    确实会生成预期结果(无错误)

  • 通过运行winpty docker container run-i-t-p 8000:8000--rm altf1be.plotly.docker compose:2019-12-17,应用程序可以正确运行

  • 我将docker映像上载到私有Azure容器注册表中

  • 我根据docker image
    Azure Portal>Container registry>Repositories>altf1be.plotly.docker-compose>v2019-12-17>上下文菜单>部署到web应用部署web应用

  • 我运行web应用程序,发现服务不可用
  • 我的方法有什么问题?

    提前感谢您在这个问题上投入的时间

    docker-compose.yml .env/登台 Dockerfile /代码/init_container.sh
    gunicorn--config=app/conf/gunicorn.conf.docker.staging.py app.webapp:server
    
    app/conf/gunicorn.conf.docker.staging.py
    #-*-编码:utf-8-*-
    工人=1
    #打印(“工作者:{}”。格式(工作者))
    绑定='0.0.0.0'
    超时=600
    log_level=“调试”
    重新加载=真
    印刷品(
    f“workers={workers}bind={bind}timeout={timeout}--log level={log_level}--reload={reload}”
    )
    
    容器设置

    应用程序设置

    正在运行web应用-“服务不可用”

    Kudu-“服务不可用”

    Kudu-端口8000上的http ping(应用程序未运行)
    • 错误-站点altf1be plotly docker的容器altf1be-plotly-docker_0_ee297002已退出,站点启动失败

    • 错误-容器altf1be-plotly-docker_0_ee297002未响应端口8000上的HTTP ping,站点启动失败。有关调试,请参阅容器日志


    我能看到的是,您使用了错误的环境变量,它应该是
    WEBSITES\u PORT
    ,您错过了
    网站后面的s
    。您可以添加它,然后再次尝试部署映像

    我认为Azure Web App不会像您在docker compose文件中使用选项
    env_file
    那样帮助您设置环境变量。因此,我建议您通过命令
    docker build
    创建映像,并通过
    -e
    设置环境变量对其进行本地测试。当映像运行良好时,您可以将其推送到ACr,并使用Web应用程序中的环境变量从ACr进行部署


    或者您仍然可以使用docker compose文件在Web应用程序中部署您的图像,而不是使用
    环境
    图像
    构建
    ,当图像位于ACR中时。

    我可以看到您使用了错误的环境变量,它应该是
    网站端口
    ,您错过了
    网站后面的s
    。您可以添加它,然后再次尝试部署映像

    我认为Azure Web App不会像您在docker compose文件中使用选项
    env_file
    那样帮助您设置环境变量。因此,我建议您通过命令
    docker build
    创建映像,并通过
    -e
    设置环境变量对其进行本地测试。当映像运行良好时,您可以将其推送到ACr,并使用Web应用程序中的环境变量从ACr进行部署


    或者您仍然可以使用docker compose文件在Web App中部署您的图像,当图像位于ACR中时,使用
    环境
    图像
    代替
    环境文件
    构建

    出现了几个问题:网站端口拼写错误,启动文件是启动GUNICOR的命令行。出现了几个问题:网站端口拼写错误,启动文件错误是启动gunicorn的命令行
    version: '3.7'
    services:
      twikey-plot_ly_service:
        # container_name: altf1be.plotly.docker-container-name
        build: .
        image: altf1be.plotly.docker-compose:2019-12-17
        command: gunicorn --config=app/conf/gunicorn.conf.docker.staging.py app.webapp:server
        ports:
          - 8000:8000
        env_file: .env.staging
    
    
    apiUrl=https://api.beta.alt-f1.be
    authorizationUrl=/api/auth/authorization/code
    serverUrl=https://dunningcashflow-api.alt-f1.be
    transactionFeedUrl=/creditor/tx
    api_token=ANICETOKEN
    
    
    # read the Dockerfile reference documentation
    # https://docs.docker.com/engine/reference/builder
    
    # build the docker
    # docker build -t altf1be.plotly.docker-compose:2019-12-17.
    
    # https://docs.microsoft.com/en-us/azure/app-service/containers/tutorial-custom-docker-image#use-a-docker-image-from-any-private-registry-optional
    
    # Use the docker images used by Microsoft on Azure
    
    FROM mcr.microsoft.com/oryx/python:3.7-20190712.5
    LABEL Name=altf1.be/plotly Version=1.19.0
    LABEL maintainer="abo+plotly_docker_staging@alt-f1.be"
    RUN mkdir /code
    WORKDIR /code
    ADD requirements.txt /code/
    # copy the code from the local drive to the docker
    ADD . /code/
    
    # non interactive front-end
    ARG DEBIAN_FRONTEND=noninteractive
    
    # update the software repository
    ENV SSH_PASSWD 'root:!astrongpassword!'
    
    RUN apt-get update && apt-get install -y \
        apt-utils \
        # enable SSH
        && apt-get install -y --no-install-recommends openssh-server \
        && echo "$SSH_PASSWD" | chpasswd
    
    RUN chmod u+x /code/init_container.sh
    
    # update the python packages and libraries
    
    RUN pip3 install --upgrade pip 
    RUN pip3 install --upgrade setuptools 
    RUN pip3 install --upgrade wheel
    RUN pip3 install -r requirements.txt
    
    # copy sshd_config file. See https://man.openbsd.org/sshd_config
    COPY sshd_config /etc/ssh/
    EXPOSE 8000 2222
    ENV PORT 8000
    ENV SSH_PORT 2222
    
    # install dependencies
    
    ENV ACCEPT_EULA=Y
    ENV APPENGINE_INSTANCE_CLASS=F2
    ENV apiUrl=https://api.beta.alt-f1.be
    ENV serverUrl=https://dunningcashflow-api.alt-f1.be
    
    ENV DOCKER_REGISTRY altf1be.azurecr.io
    
    ENTRYPOINT ["/code/init_container.sh"]