Docker enrtypiont не найден на приложении django с alpine python

Это мой Dockerfile:

FROM python:alpine3.17

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

WORKDIR /app

# install psycopg2 dependencies
RUN apk update \
    && apk add postgresql-dev gcc python3-dev musl-dev

COPY Pipfile /app
COPY Pipfile.lock /app
RUN pip install pipenv
RUN pipenv install --system

COPY . /app


USER root
RUN chmod +x /app/entrypoint-prod.sh
ENTRYPOINT ["/app/entrypoint-prod.sh"]

Это моя точка входа-prod.sh

#!/bin/bash

# Apply migrations
python manage.py migrate --noinput

# Collect static
python manage.py collectstatic --no-input --clear

# Start the application
gunicorn grayti_backend.wsgi:application --bind 0.0.0.0:8000 --workers 3

Когда я запускаю изображение docker run -it myapp:latest, вот вывод:

exec /app/entrypoint-prod.sh: no such file or directory

Эта ошибка возникала только при переходе от FROM python:3.10 к FROM python:alpine3.17

Я пробовал следующее, но тоже не сработало:

USER root
RUN chmod +x entrypoint-prod.sh
ENTRYPOINT ["./entrypoint-prod.sh"]

Ответ от Hans Kilian решил мою проблему. Проблема была решена заменой #!/bin/bash на #!/bin/sh в entrypoint-prod.shфайле.

Вернуться на верх