Деплой телеграм бота на основе Django + nginx
Всем привет друзья! Я написал телеграм бота на библиотеке Python telegram bot. В качестве админки выбрал Django, а в качестве сервера nginx. Я решил использовать docker и docker-compose, у меня есть три сервиса: web - сама админка, bot - телеграм бот и nginx - сервер. Вот код моего Docker file:
FROM python:3.9.6
WORKDIR /usr/src/app
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
COPY ./requirements.txt /usr/src/app/
RUN /usr/local/bin/python -m pip install --upgrade pip
RUN pip install -r requirements.txt
COPY . /usr/src/app/
Вот код файла docker-compose:
version: '3.8'
services:
web:
build: ./
command: >
sh -c "python manage.py migrate && gunicorn config.wsgi:application --bind 0.0.0.0:8000"
volumes:
- .:/usr/src/app
- ./static:/usr/src/app/static
expose:
- 8000
restart: always
bot:
build: ./
command: >
sh -c "python manage.py bot"
volumes:
- .:/usr/src/app
restart: always
nginx:
build: ./nginx
restart: on-failure
ports:
- 80:80
volumes:
- ./static:/static/
depends_on:
- web
- bot
Вот конфиг nginx:
upstream bot_answer {
server web:8000;
}
server {
listen 80;
location /{
proxy_pass http://bot_answer;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /static/;
}
}
В allowed hosts в настройка Django я прописал следующее:
ALLOWED_HOSTS = ["127.0.0.1", "0.0.0.0", "11.22.33.44"]
где 11.22.33.44 - ip моего сервера. У себя на моем локальном ПК я запускаю команды:
docker-compose build
docker-compose up
Все запускается без ошибок, в браузере я перехожу по ссылке 127.0.0.1:80 и попадаю в админку Django.
Но вот проблема. Я склонировал мой код на удаленный сервер с ip 11.22.33.44. Далее выполнил сборку и запуск docker-compose выполнив команды:
docker-compose build
docker-compose up
Контейнеры усшешно запустились, однако если я на своем локальном компьютере пытаюсь попасть в админку Django этого не получается. Я ввожу 11.22.33.44:80 в адресную строку Django и ни чего не происходит.
Помогите пожалуйста, как мне настроить все так чтобы я мог заходить в админку с любого компьютера по ip адресу моего сервера, на котором я и запустил мой проект? Спасибо!