启动容器进程导致 "exec: \"uwsgi\": 在 $PATH 中找不到可执行文件": 未知
starting container process caused "exec: \"uwsgi\": executable file not found in $PATH": unknown
我正在尝试启动一个 docker 容器,但收到错误消息“来自守护程序的错误响应:OCI 运行时创建失败:container_linux.go:349:启动容器进程导致“执行:” uwsgi":$PATH 中未找到可执行文件":未知"。我认为它与我的 docker 文件和 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 容器,但收到错误消息“来自守护程序的错误响应:OCI 运行时创建失败:container_linux.go:349:启动容器进程导致“执行:” uwsgi":$PATH 中未找到可执行文件":未知"。我认为它与我的 docker 文件和 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