docker - 启动容器进程导致 "exec:\"uwsgi\": executable file not found in $PATH": unknown

标签 docker pycharm uwsgi

我正在尝试启动一个 docker 容器,但收到错误消息“来自守护程序的错误响应:OCI 运行时创建失败:container_linux.go:349:启动容器进程导致“exec:“uwsgi”:可执行文件未找到$PATH“:未知”。我认为它与我的 dockerfile 和 uwsgi 文件有关,但我不确定为什么我无法启动我的容器。我已经 pip 安装了 uwsgi。除了安装 uwsgi,我还没有找到任何其他解决方案,即使它已经存在

Docker 文件

##
## Dockerfile to generate a Docker image from a GeoDjango project
##

# Start from an existing image with Python 3.8 installed
FROM python:3.8

MAINTAINER Mark Foley

# Run a series of Linux commands to ensure that
# 1. Everything is up-to-date and
# 2. Install GDAL
RUN apt-get -y update && apt-get -y upgrade && apt-get -y install libgdal-dev

# Make a working directoir in the image and set it as working dir.
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

# make sure that pip & setuptools are installed and to date
RUN pip install --upgrade pip setuptools wheel

# Get the following libraries. We caan install them "globally" on the image as it will contain only our project
RUN apt-get -y install build-essential python-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info

# You should have already exported your Python library reuirements to a "requiremnts.txt" file using pip.
# Now copy this to the image and install everything in it.
COPY requirements.txt /usr/src/app
RUN pip install -r requirements.txt

# Copy everything in your Django project to the image.
COPY . /usr/src/app

# Make sure that static files are up to date and available
RUN python manage.py collectstatic --no-input

# Expose port 8001 on the image. We'll map a localhost port to this later.
EXPOSE 8001

# Run "uwsgi". uWSGI is a Web Server Gateway Interface (WSGI) server implementation that is typically used to run Python
# web applications.
CMD ["uwsgi", "--ini", "uwsgi.ini"]

UWSGI文件

[uwsgi]

#=======================
# DO NOT EDIT THIS FILE
#=======================

# chdir to the folder of this config file
chdir = %d
# %d is the dir this configuration file is in
#socket = %dapp.sock
http = :8001
# load the module from wsgi.py, it is a python path from
# the directory above.
module = geodjango_2021.wsgi:application
# allow anyone to connect to the socket (666). This is very permissive
chmod-socket=664

master = true
processes = 4
vacuum = true
#harakiri = 30
#threads = 2 

最佳答案

尝试在你的 requirement.txt 文件中安装 uwsgi

$ pip 安装 uwsgi

关于docker - 启动容器进程导致 "exec:\"uwsgi\": executable file not found in $PATH": unknown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64686728/

相关文章:

macos - 无法在 M1 芯片组上构建 docker compose

python - 让 PyC​​harm 知道哪些类是 mixin 的

python - 为什么一定要用__new__来初始化一个对象?

python - 我可以让 PyC​​harm 在一行中抑制特定警告吗?

django - 为什么 uWSGI 使用的内存比 Apache 多?

docker - 使Docker容器成为VPN的一部分

docker - docker 容器的 webpack-dev-server 代理

python - 如何在 Ubuntu 的虚拟环境中为 uwsgi 安装 gevent 插件?

python-3.x - uWSGI 不会切换到自定义 uwsgi.ini 文件中定义的用户 uid=my_user

networking - 通过容器路由Docker通信