Azure Web 应用服务 Cotainer APP 的 Docker 失败

问题描述 投票:0回答:1

我们有一个带有 vnet 的天蓝色基础设施。

我们有一个 Gradel 应用程序和一个 dockerfile,如下所示:

FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04

RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN echo "source /opt/miniconda/etc/profile.d/conda.sh && \
    conda activate" >> ~/.bashrc

COPY logic/ /app/logic
COPY assets/ /app/assets
COPY utils/ /app/utils
COPY python_specs/sss_env.yml /app
COPY app.py /app

WORKDIR /app

RUN source /opt/miniconda/etc/profile.d/conda.sh && \
    conda activate && \
    conda install conda && \
    pip install cmake && \
    conda env update -f sss_env.yml

EXPOSE 8080
# conda:
CMD ["conda", "run", "--no-capture-output", "-n", "sss-env", "python", "-m", "app", "--port", "8081"]

docker 文件在本地实例(计算/机器)上正常构建并运行。 devops 管道构建并推送 docker 镜像正常,另一个管道使用容器部署 Web 应用程序:

enter image description here

一切看起来都很好,直到我们尝试查看网络应用程序的日志流。在那里,除了这一行之外,一切似乎都很好:

2024-11-27T09:10:07.6520207Z 错误 conda.cli.main_run:执行(125):

conda run python -m app --port 8081
失败了。 (参见上文 错误)/home/LogFiles/2024_11_27_lw0sdlwk0006T6_default_scm_docker.log (https://somename-dev.scm.azurewebsites.net/api/vfs/LogFiles/2024_11_27_lw0sdlwk0006T6_default_scm_docker.log

我们已将 WEBSITE_PORT: 8081 添加到 Web 应用程序服务中的环境变量中: enter image description here

我无法找到这个 docker 命令失败的原因,已经到处查看了。

如果有人可以帮忙,我将不胜感激!

P.s 使用普通的 ubuntu 最新代理构建 docker 并将其推送到 vnet 集成 acr Web 应用程序是使用自托管代理部署的。

命令:RUN conda env list && conda list -n sss-env 给出

# conda environments:
#
base                 * /opt/miniconda
abs-env                /opt/miniconda/envs/abs-env

# packages in environment at /opt/miniconda/envs/abs-env:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
aiofiles                  23.2.1                   pypi_0    pypi
annotated-types           0.7.0                    pypi_0    pypi
anyio                     4.6.2.post1              pypi_0    pypi
bzip2                     1.0.8                h4bc722e_7    conda-forge
ca-certificates           2024.8.30            hbcca054_0    conda-forge
certifi                   2024.8.30                pypi_0    pypi
charset-normalizer        3.4.0                    pypi_0    pypi
click                     8.1.7                    pypi_0    pypi
contourpy                 1.3.1                    pypi_0    pypi
cycler                    0.12.1                   pypi_0    pypi
et-xmlfile                2.0.0                    pypi_0    pypi
exceptiongroup            1.2.2                    pypi_0    pypi
faiss                     1.7.2           py310hd7ef7d9_4_cpu    conda-forge
faiss-cpu                 1.7.2                h718b53a_4    conda-forge
fastapi                   0.115.5                  pypi_0    pypi
ffmpy                     0.4.0                    pypi_0    pypi
filelock                  3.16.1                   pypi_0    pypi
fonttools                 4.55.0                   pypi_0    pypi
fsspec                    2024.10.0                pypi_0    pypi
gradio                    5.1.0                    pypi_0    pypi
gradio-client             1.4.0                    pypi_0    pypi
h11                       0.14.0                   pypi_0    pypi
httpcore                  1.0.7                    pypi_0    pypi
httpx                     0.27.2                   pypi_0    pypi
huggingface-hub           0.26.2                   pypi_0    pypi
idna                      3.10                     pypi_0    pypi
intel-openmp              2022.0.1          h06a4308_3633  
jinja2                    3.1.4                    pypi_0    pypi
joblib                    1.4.2                    pypi_0    pypi
kiwisolver                1.4.7                    pypi_0    pypi
ld_impl_linux-64          2.43                 h712a8e2_2    conda-forge
libblas                   3.9.0           25_linux64_openblas    conda-forge
libcblas                  3.9.0           25_linux64_openblas    conda-forge
libfaiss                  1.7.2            h2bc3f7f_0_cpu    pytorch
libfaiss-avx2             1.7.2            h1234567_4_cpu    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc                    14.2.0               h77fa898_1    conda-forge
libgcc-ng                 14.2.0               h69a702a_1    conda-forge
libgfortran               14.2.0               h69a702a_1    conda-forge
libgfortran5              14.2.0               hd5240d6_1    conda-forge
libgomp                   14.2.0               h77fa898_1    conda-forge
liblapack                 3.9.0           25_linux64_openblas    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libopenblas               0.3.28          pthreads_h94d23a6_1    conda-forge
libsqlite                 3.47.0               hadc24fc_1    conda-forge
libstdcxx                 14.2.0               hc0a3c3a_1    conda-forge
libstdcxx-ng              14.2.0               h4852527_1    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libzlib                   1.3.1                hb9d3cd8_2    conda-forge
markdown-it-py            3.0.0                    pypi_0    pypi
markupsafe                2.1.5                    pypi_0    pypi
matplotlib                3.7.1                    pypi_0    pypi
mdurl                     0.1.2                    pypi_0    pypi
mkl                       2022.1.0           hc2b9512_224  
ncurses                   6.5                  he02047a_1    conda-forge
numpy                     1.26.4          py310hb13e2d6_0    conda-forge
openpyxl                  3.1.5                    pypi_0    pypi
openssl                   3.4.0                hb9d3cd8_0    conda-forge
orjson                    3.10.12                  pypi_0    pypi
packaging                 24.2                     pypi_0    pypi
pandas                    2.0.0                    pypi_0    pypi
pillow                    10.4.0                   pypi_0    pypi
pip                       22.3.1             pyhd8ed1ab_0    conda-forge
pydantic                  2.10.1                   pypi_0    pypi
pydantic-core             2.27.1                   pypi_0    pypi
pydub                     0.25.1                   pypi_0    pypi
pygments                  2.18.0                   pypi_0    pypi
pyparsing                 3.2.0                    pypi_0    pypi
python                    3.10.15         h4a871b0_2_cpython    conda-forge
python-dateutil           2.9.0.post0              pypi_0    pypi
python-multipart          0.0.17                   pypi_0    pypi
python_abi                3.10                    5_cp310    conda-forge
pytz                      2024.2                   pypi_0    pypi
pyyaml                    6.0.2                    pypi_0    pypi
readline                  8.2                  h8228510_1    conda-forge
requests                  2.32.3                   pypi_0    pypi
rich                      13.9.4                   pypi_0    pypi
ruff                      0.8.0                    pypi_0    pypi
scikit-learn              1.5.2                    pypi_0    pypi
scipy                     1.14.1                   pypi_0    pypi
seaborn                   0.12.2                   pypi_0    pypi
semantic-version          2.10.0                   pypi_0    pypi
setuptools                75.6.0             pyhff2d567_0    conda-forge
shellingham               1.5.4                    pypi_0    pypi
six                       1.16.0                   pypi_0    pypi
sniffio                   1.3.1                    pypi_0    pypi
starlette                 0.41.3                   pypi_0    pypi
stringcase                1.2.0                    pypi_0    pypi
threadpoolctl             3.5.0                    pypi_0    pypi
tk                        8.6.13          noxft_h4845f30_101    conda-forge
tomlkit                   0.12.0                   pypi_0    pypi
tqdm                      4.67.1                   pypi_0    pypi
typer                     0.13.1                   pypi_0    pypi
typing-extensions         4.12.2                   pypi_0    pypi
tzdata                    2024.2                   pypi_0    pypi
urllib3                   2.2.3                    pypi_0    pypi
uvicorn                   0.32.1                   pypi_0    pypi
websockets                12.0                     pypi_0    pypi
wheel                     0.45.1             pyhd8ed1ab_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge

给出了这个:

docker dockerfile azure-web-app-service azure-web-app-for-containers
1个回答
0
投票

日志表明应用程序正在侦听

0.0.0.0:8181
而不是
8081
。这可能是问题的根本原因,其中 Azure 希望应用程序侦听由
WEBSITE_PORT
定义的端口(设置为
8081
)。

应用程序应绑定到端口

8081
,尤其是在 Azure 中运行时。您正在使用
conda run
启动应用程序,您可能需要在 Py 代码中显式地将正确的端口传递给应用程序,特别是当它使用 FastAPI 或 Flask 等框架时。

在 Azure Web App 中正确设置

WEBSITE_PORT
环境变量,并将其公开在 Dockerfile 中。

检查下面的

CMD
声明:

CMD ["bash", "-c", "conda run --no-capture-output -n abs-env python -m app --port $WEBSITE_PORT"]

chmod:更改“/temp”的权限:操作不..一些配置

  • 如果应用程序需要临时文件存储,请将对
    /temp
    的任何引用更改为
    /tmp
    。这是基于 Linux 的系统中临时文件的常见位置。

更新了 Dockerfile:

FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04

RUN rm /bin/sh && ln -s /bin/bash /bin/sh
RUN echo "source /opt/miniconda/etc/profile.d/conda.sh && \
    conda activate" >> ~/.bashrc

COPY logic/ /app/logic
COPY assets/ /app/assets
COPY utils/ /app/utils
COPY python_specs/sss_env.yml /app
COPY app.py /app

WORKDIR /app

# Install dependencies and validate environment
RUN source /opt/miniconda/etc/profile.d/conda.sh && \
    conda install conda && \
    pip install cmake && \
    conda env update -f sss_env.yml && \
    conda env list

EXPOSE 8081

# Ensure the app uses the correct port from the environment variable
CMD ["conda", "run", "--no-capture-output", "-n", "abs-env", "python", "-m", "app", "--port", "8081"]
© www.soinside.com 2019 - 2024. All rights reserved.