Собираю приложение в докере, вот докерфайл и bash-скрипт, используемый в ENTRYPOINT:
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 ./
USER jshrt
EXPOSE 80
ENTRYPOINT ["./boot.sh"]
boot.sh (используемый в ENTRYPOINT скрипт):
#!/bin/sh
source venv/bin/activate
flask db upgrade
exec python -u jshrt.py
Когда контейнер запускается локально, можно заходить на сайт без порта (так как приложение хостится на 80 порту), но вот на хостинге это не получается. Он (хостинг) выдаёт свой порт, несмотря на указание 80 порта в портах, которые надо открыть, и зайти на сайт можно только через выданные хостингом ip адрес и порт, а при попытке зайти без порта выдаётся это (после уведомления о небезопасности подключения):
Мне нужно открыть 80 порт для того, чтобы подключить домен, так как без него моё приложение по некоторым причинам работать корректно не будет. Я искренне не понимаю, почему так происходит. Неужели это из-за хостинга?