Dockerfile
FROM python:3.7.4-alpine ENV PYTHONUNBUFFERED 1 ENV PYTHONDONTWRITEBYTECODE 1 ENV LANG C.UTF-8 MAINTAINER "mail@gmail.com" RUN apk update && apk add postgresql-dev gcc musl-dev RUN apk --update add build-base jpeg-dev zlib-dev RUN pip install --upgrade setuptools pip RUN mkdir /code WORKDIR /code COPY requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code/ #CMD ["gunicorn", "--log-level=DEBUG", "--timeout 90", "--bind", "0.0.0.0:8000", "express_proj.wsgi:application"] ENTRYPOINT ["./docker-entrypoint.sh"]docker-entrypoint.sh
#!/bin/bash # Prepare log files and start outputting logs to stdout touch /code/gunicorn.log touch /code/access.log tail -n 0 -f /code/*.log & # Start Gunicorn processes echo Starting Gunicorn. exec gunicorn express_proj.wsgi:application \ --name express \ --bind 0.0.0.0:8000 \ --log-level=info \ --log-file=/code/gunicorn.log \ --access-logfile=/code/access.log \ --workers 2 \ --timeout 90 \ "$@"Obteniendo el error standard_init_linux.go:211: el proceso de usuario exec causó "no existe tal archivo o directorio" Necesito ayuda. Algunos dicen usar dos2unix (no sé cómo usarlo).
La línea "shebang" al comienzo de un script dice qué intérprete usar para ejecutarlo. En su caso, su secuencia de comandos ha especificado #!/bin/bash , pero las imágenes Docker basadas en Alpine no suelen incluir GNU bash; en cambio, tienen un /bin/sh más mínimo que incluye solo la funcionalidad en la especificación de shell POSIX.
Su secuencia de comandos no utiliza ninguna de las extensiones de bash no estándar, por lo que puede cambiar el inicio de la secuencia de comandos a
#!/bin/shEsto también puede suceder si los finales de línea del script son incorrectos, es decir, \r\n en lugar de \r
esto se puede verificar usando el comando file path/to/script.sh que indica si el script tiene terminaciones de línea CR-LF
Si es un script único, se puede usar dos2unix para cambiarlo a \r\n a \n
Si es un repositorio de git, la configuración de la opción autocrlf para input funcionaría