【问题标题】:standard_init_linux.go:207: exec user process caused "exec format error" [duplicate]standard_init_linux.go:207:exec 用户进程导致“exec 格式错误”[重复]
【发布时间】:2019-11-22 18:41:23
【问题描述】:

我目前正在尝试将我的 docker 应用程序部署到容器注册表 Azure。我可以在本地运行我的 docker 镜像,但是当我将它部署到 azure 时,它​​给了我这个错误:

standard_init_linux.go:207: exec 用户进程导致“exec 格式错误” 这是我的 dockerfile:

*Pull a pre-built alpine docker image with nginx and python3 installed

*this image is from docker community, its small so our upload to contain will be faster

FROM tiangolo/uwsgi-nginx-flask:python3.7

FROM ubuntu:latest

ENV LISTEN_PORT=8400

EXPOSE 8400

RUN apt-get update && apt-get install -y /

    curl apt-utils apt-transport-https debconf-utils gcc build-essential g++-5\

    && rm -rf /var/lib/apt/lists/*

*adding custom MS repository

RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

RUN curl https://packages.microsoft.com/config/ubuntu/19.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

RUN apt-get update && ACCEPT_EULA=Y apt-get install -y msodbcsql17

*install SQL Server drivers

RUN apt-get update && ACCEPT_EULA=Y apt-get -f install -y unixodbc-dev

*install SQL Server tools

RUN apt-get update && ACCEPT_EULA=Y apt-get install -y mssql-tools

RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

RUN /bin/bash -c "source ~/.bashrc"

RUN apt-get update && apt-get install -y python3-pip

RUN apt-get update && apt-get install -y libpq-dev

*install additional requirements from a requirements.txt file

COPY requirements.txt /

RUN pip3 install --no-cache-dir -r /requirements.txt

COPY app/. /.

CMD python3 wsgi.py 

因为我不明白 azure 如何调用我的 Docker 映像,所以我不断尝试不同的 CMD 版本,例如:

CMD ["python3", "wsgi.py", "runserver", "0.0.0.0:8400"]

但无济于事。我在互联网上查找解决方案,但真的找不到任何解决方案。有没有人对我做错了什么有见解?创建 .sh 文件是否必要?我是 linux 新手,所以任何见解都会有所帮助!

再次感谢!

【问题讨论】:

    标签: python linux azure docker


    【解决方案1】:

    我遇到过类似的问题,这是由构建在一种架构(比如 AMD64)上的 docker 映像引起的,但在尝试在不同的架构(ARM64)上运行时却失败了。 看看 QEMU tutorial

    docker ref

    【讨论】:

    • 您好埃文,非常感谢您的回复!我查看了 AMD64 的 azure 架构,我的 docker 也是 AMD64。但我实际上解决了我的问题!这是因为我的 py 文件中缺少 shebang。但感谢您抽出宝贵时间回复 :) 非常感谢
    • 这对我来说是正确的答案。我在 ARM64 机器上构建映像并收到此错误。我使用 buildx 为 AMD64 重建了它并修复了它。
    猜你喜欢
    • 2021-12-18
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多