Докеризованное приложение python.django не запускается в браузере

У меня есть приложение python-django, созданное в ubuntu OS, которое я пытаюсь контейнеризировать. Docker собирается и запускается без ошибок. Но когда я пытаюсь просмотреть сайт в браузере, я его не вижу

Это мои разрешенные хосты в settings.py

ALLOWED_HOSTS = ["localhost", "127.0.0.1","0.0.0.0"]

А это мой dockerfile

#base image
FROM python:3.10

# setup environment variable 
ENV DockerHOME=/home/app

RUN mkdir -p $DockerHOME
WORKDIR $DockerHOME


ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1  

# install dependencies  
RUN pip3 install --upgrade pip


# copy whole project to your docker home directory. 
COPY . $DockerHOME  
# run this command to install all dependencies  

RUN pip3 install -r requirements.txt  
# port where the Django app runs  
EXPOSE 8000  

# start server  
CMD python3 manage.py runserver 0.0.0.0:8000

Я пытался запустить его следующими командами, но безуспешно.

sudo docker run -p 8000:8000 myapp:v0
#also the following
sudo docker run myapp:v0

Я просматриваю сайт с помощью http://0.0.0.0:8000/. Я пробовал с докерным ip http://172.17.0.2:80000

Так что не уверен, что я упускаю. Любая идея будет очень признательна.

Здесь я создаю новый Dockerfile и docker-compose файл на основе вашего проекта.

Dockerfile:

FROM python:3.9-alpine3.13

ENV PYTHONUNBUFFERED 1

COPY ./requirements.txt /tmp/requirements.txt  #here copied requirements.txt into tmp folder

COPY ./your_project_name /app       #here copied your project into app directory
WORKDIR /app                 #This is current working directory
EXPOSE 8000

RUN python -m venv /py && \        #here created venv as py
    /py/bin/pip install --upgrade pip && \
    apk add --update --no-cache postgresql-client jpeg-dev && \
    apk add --update --no-cache --virtual .tmp-build-deps \
        build-base postgresql-dev musl-dev zlib zlib-dev linux-headers && \
    /py/bin/pip install -r /tmp/requirements.txt && \

    rm -rf /tmp && \        #here removed tmp folder after installing all the requirements
    apk del .tmp-build-deps && \
    
    mkdir -p /vol/web/media && \           #here created a directory for static and media
    mkdir -p /vol/web/static && \

docker-compose:

version: '3.9'

services:
  app:                 #This is your project container
    build:
      context: .
      args:
       - DEV=true
    ports:
      - '8000:8000'
    volumes:
      - ./app:/app
      - dev-static-data:/vol/web
    command: >
      sh -c 'python manage.py migrate &&
             python manage.py runserver 0.0.0.0:8000'
    environment:
      - DB_HOST=db #don't change this
      - DB_NAME=add here db name
      - DB_USER=addhere user name
      - DB_PASS=add here password
      - DEBUG=1
    depends_on:
      - db                 #here connected database to project container
  db:
    image: postgres:13-alpine
    volumes:
      - dev-db-data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=your db name                #here I used postgres as database
      - POSTGRES_USER=your user name
      - POSTGRES_PASSWORD=your password
volumes:
  dev-db-data:
  dev-static-data:

Примечание: после добавления вышеперечисленных вещей не забудьте собрать dockerfile и docker-compose файл.

После сборки dockerfile и docker-compose, запустите этот проект с помощью команды docker-compose up, после чего вы сможете просмотреть этот докеризованный проект в веб-браузере.

Я создал для вас этот dockerfile и docker-compose файл.

Вернуться на верх