Nginx не запускается из bash, выдавая странную ошибку, как исправить?

Рейтинг: 0Ответов: 0Опубликовано: 25.08.2023

Собираю flask-приложение, в ENTRYPOINT указываю bash-скрипт для запуска nginx (для обратного прокси, чтобы на сайт можно было заходить через 80 порт) и gunicorn. Вот Dockerfile:

FROM python:3.10.5-alpine

RUN adduser -D jshrt

WORKDIR /home/jshrt

COPY requirements.txt requirements.txt
RUN python -m venv venv
RUN venv/bin/pip install -r requirements.txt
RUN venv/bin/pip install gunicorn

COPY app app
COPY migrations migrations
COPY jshrt.py config.py boot.sh ./
RUN chmod +x boot.sh

ENV FLASK_APP jshrt.py

RUN chown -R jshrt:jshrt ./


RUN apk add nginx
COPY nginx.conf /etc/nginx/nginx.conf

USER jshrt

EXPOSE 8080
ENTRYPOINT ["./boot.sh"]

вот boot.sh:

#!/bin/sh
source venv/bin/activate
flask db upgrade
source nginx
exec gunicorn -b 127.0.0.1:8080 jshrt:app

Вот также кастомный файл конфигурации для nginx:

http {
  server {
    listen 80;
    server_name jshrt.ru;

    location / {
      proxy_pass http://127.0.0.1:8080;
    }
  }
}

При запуске с помощью команды docker run -p 8080:8080 jshrt-2:latest контейнер останавливается с такой ошибкой:

./boot.sh: /usr/sbin/nginx: line 1: ⌂ELF☻☺☺♥: not found
./boot.sh: /usr/sbin/nginx: line 2: �: not found
./boot.sh: /usr/sbin/nginx: line 3: �: not found
./boot.sh: /usr/sbin/nginx: line 3: syntax error: unterminated quoted string

Почему так происходит?

Ответы

Ответов пока нет.