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
файле.