Проблемы с развертыванием образа Django, Gunicorn docker в Kubernetes через rancher

#django #docker #kubernetes #gunicorn #rancher

Вопрос:

У меня возникли проблемы с развертыванием образа docker на RKE. Мой образ докера-это приложение django, которое обслуживается с помощью gunicorn. Я использую gitlab CI для тестирования приложения, создания контейнера и хранения контейнера (в реестре контейнеров gitlab), он проходит все тесты и успешно создает контейнер.

Когда я иду развертывать его на ранчо, он просто отлично извлекает образ и создает контейнер, но я продолжаю получать сообщение об ошибке, что исполняемый файл gunicorn не может быть найден. Я перепробовал все различные типы конфигураций для CMD/ТОЧКИ входа, и я продолжаю получать ошибку. Любая помощь была бы потрясающей, так как я бьюсь головой о стену.

Файл Dockerfile находится ниже:

 FROM python:3.8.5-slim-buster

# install dependencies
RUN apt-get -y update amp;amp; apt-get -y upgrade amp;amp; apt-get install -y musl-dev libpq-dev gcc 

ENV VIRTUAL_ENV=venv
RUN python3 -m venv $VIRTUAL_ENV
RUN echo $PATH
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
RUN echo $PATH
RUN ls -hal
RUN pwd

# Install dependencies:
COPY requirements.txt .
RUN pip install -r requirements.txt
RUN ls -hal
RUN ls -hal venv/bin
RUN which gunicorn

# copy project
COPY . .

EXPOSE 8080

CMD /venv/bin/gunicorn --bind :8080 django_app.wsgi
 

Requirements.txt ниже (это немного грязно, пытаясь сделать некоторую очистку):

 astroid==2.3.3
autopep8==1.5
Django==2.2.2
django-autocomplete-light==3.4.1
django-bootstrap-modal-forms==1.4.2
django-crispy-forms==1.7.2
djangorestframework==3.9.4
gunicorn==20.1.0
html5lib==1.0.1
isort==4.3.21
lazy-object-proxy==1.4.3
mccabe==0.6.1
Pillow==8.3.0
pip-autoremove==0.9.1
psycopg2==2.9.1
pycodestyle==2.5.0
pylint==2.4.4
PyPDF2==1.26.0
pytz==2019.1
six==1.12.0
sqlparse==0.3.0
typed-ast==1.4.1
webencodings==0.5.1
wrapt==1.11.2
 

Комментарии:

1. Ваша RUN pip install линия-установка пакетов в «системный» Python; с другой стороны, это довольно нормально в Docker, так как образ изолирован от всех других питонов. Работает ли установка CMD gunicorn ... без пути к виртуальной среде? (Простая docker run настройка может быть проще, чем настройка на основе Kubernetes для этого.) Если это сработает, вы, вероятно, также сможете удалить все, что связано с виртуальной средой.