Ude*_*ili 2 python gunicorn docker digital-ocean
我真的不明白这个。我正在尝试使用 Gunicorn 将我的 python 应用程序从 GitHub 部署到 docker 来启动该应用程序。但在构建成功后但在部署开始之前我不断收到此错误
starting non-root container [./start.sh]: creating process: failed to load /usr/app/start.sh: exec format error
Run Code Online (Sandbox Code Playgroud)
我尝试更改 start.sh 文件的权限,但它没有改变。这是我的start.sh
gunicorn -b :5000 --access-logfile - --error-logfile - pixelshop:app
Run Code Online (Sandbox Code Playgroud)
这是我的码头工人
FROM python:latest
WORKDIR /usr/app
COPY . .
RUN apt-get update
RUN apt-get install -y libgl1-mesa-dev
RUN pip install -r requirements.txt
RUN pip install Flask
RUN pip install gunicorn
RUN chmod +x start.sh
ENTRYPOINT ./start.sh
Run Code Online (Sandbox Code Playgroud)
小智 9
我认为这里可能发生两件事。
正如 David Maze 所建议的,请确保将 shebang 作为文件的第一行entrypoint.sh。
我的问题是我的新 M1 Macbook Pro 使用 ARM64 架构,而 DigitalOcean 似乎只支持 AMD64 图像。您可以使用以下命令检查您的 docker 映像:
> docker inspect <YOUR_IMAGE_ID> --format '{{.Architecture}}'
arm64
Run Code Online (Sandbox Code Playgroud)
如果您看到arm64您,那么您应该amd64在您的文件中指定架构,Dockerfile如下所示:
FROM --platform=linux/amd64 python:latest
# Rest for Dockerfile...
Run Code Online (Sandbox Code Playgroud)
希望这对将来的人有所帮助,因为我在尝试找出部署新映像时发生的变化时感到非常沮丧。
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |