Docker. TemplateDoesNotExist at..

Odpowiedz Nowy wątek
2019-09-25 15:48

Rejestracja: 2 lata temu

Ostatnio: 6 dni temu

0

Czołem!
Jakis czas temu stwierdziłemże przesiadka z Linuksa na Windowsa jest dobrym momętem aby wdrożyć Dockera, tym bardziej że to tylko kwestia czasu jak bede go stawiał na jakimś zewnętrzym serwerze. Nie stety tak jak w tytule, Python ma problem z odnalezieniem templates. Sprawdzałem jak z dostępnośca folderów i plików w maszynie wirtualnej i chyba pod tym względem wszystko ok.

  1. Maszyne w. odpalam przez Oracle Virtual Box.
  2. Po odpaleniu docker-compose up i docker-compose top dostaje:

root 2609 2587 4 13:34 ? 00:00:03 python /code/manage.py runserver 0.0.0.0:8000
root 2671 2609 11 13:34 ? 00:00:06 /usr/local/bin/python /code/manage.py runserver 0.0.0.0:8 000

  1. miedzyczasię dostaje info o tym że jest jakiś problem z połaczeniem się z bazą postgres ale to prawie na pewno nie to.

4.Po zrobieniu requesta na strone główną dostaje:

TemplateDoesNotExist at /
store/product/list.html
Request Method: GET
Request URL: http://192.168.99.100:8000/
Django Version: 2.1.5
Exception Type: TemplateDoesNotExist
Exception Value:
store/product/list.html
Exception Location: /usr/local/lib/python3.7/site-packages/django/template/loader.py in get_template, line 19
Python Executable: /usr/local/bin/python
Python Version: 3.7.4
Python Path:
['/code',
'/usr/local/lib/python37.zip',
'/usr/local/lib/python3.7',
'/usr/local/lib/python3.7/lib-dynload',
'/usr/local/lib/python3.7/site-packages']
Server time: Śr, 25 Wrz 2019 15:39:51 +0200

Help!

Pozostało 580 znaków

2019-09-25 15:56

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

1

Magiczna kula mówi mi, że zbudowałeś obraz, potem dodałeś szablon na hoście i w kontenerze go po prostu nie ma, bo są w nim tylko te pliki, które istniały w czasie budowana. Zdefiniuj wolumen albo przebuduj obraz.

Pokaż plik docker-compose.yml.

edytowany 1x, ostatnio: iksde, 2019-09-25 15:57

Pozostało 580 znaków

2019-09-25 17:04

Rejestracja: 2 lata temu

Ostatnio: 6 dni temu

0
iksde napisał(a):

Magiczna kula mówi mi, że zbudowałeś obraz, potem dodałeś szablon na hoście i w kontenerze go po prostu nie ma, bo są w nim tylko te pliki, które istniały w czasie budowana. Zdefiniuj wolumen albo przebuduj obraz.

Pokaż plik docker-compose.yml.

Wszystkie pliki miałem w folderach przed zrobieniem builda.

docker-compose.yaml:

version: '3'

services:
db:
image: postgres:10.1-alpine
volumes:

  • postgres_data:/var/lib/postgresql/data/
    web:
    build: .
    command: python /code/manage.py runserver 0.0.0.0:8000
    volumes:
  • .:/code
    ports:
  • 8000:8000
    depends_on:
  • db

volumes:
postgres_data:

Dockerfile:

FROM python:3.6

# Set environment varibles
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

RUN mkdir /code

WORKDIR /code

COPY requirements.txt /code/
RUN pip install -r requirements.txt

COPY . /code/

ENTRYPOINT ["python", "manage.py"]
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

edytowany 2x, ostatnio: Szczekielnikow, 2019-09-25 17:14

Pozostało 580 znaków

2019-09-25 17:33

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

0

Hm, więc raczej wina w konfiguracji django. Bez dockera ci to działało?

Wklejaj kod w znaczniki ``` to będzie ładniej wyglądał.

Pokaż wartość TEMPLATES w ustawieniach i podaj ścieżkę pod którą fizycznie znajduje się ten szablon (począwszy od roota projektu).

Pozostało 580 znaków

2019-09-25 21:24

Rejestracja: 2 lata temu

Ostatnio: 6 dni temu

0
iksde napisał(a):

Hm, więc raczej wina w konfiguracji django. Bez dockera ci to działało?

Wklejaj kod w znaczniki ``` to będzie ładniej wyglądał.

Pokaż wartość TEMPLATES w ustawieniach i podaj ścieżkę pod którą fizycznie znajduje się ten szablon (począwszy od roota projektu).

Tak działało. Z tym że na bazie sqlite.

Scieżka: C:\Users...\Projects\Shop\Shop\templates\shop\product\list.html

kod:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'store/templates', )]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'cart.context_processors.cart',
            ],
            'libraries':{
                         'active_class': 'store.templatetags.active_class',

            }
        },
    },
]
edytowany 1x, ostatnio: Szczekielnikow, 2019-09-25 21:25

Pozostało 580 znaków

2019-09-26 10:37

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

0

'DIRS': [os.path.join(BASE_DIR, 'store/templates', )] nie powinno być 'DIRS': [os.path.join(BASE_DIR, 'Shop/templates', )]?

Pozostało 580 znaków

2019-09-26 17:38

Rejestracja: 2 lata temu

Ostatnio: 6 dni temu

0
iksde napisał(a):

'DIRS': [os.path.join(BASE_DIR, 'store/templates', )] nie powinno być 'DIRS': [os.path.join(BASE_DIR, 'Shop/templates', )]?

Nie.To nie to. Ale swoją drogą bedę musiał to poprawić.

Pozostało 580 znaków

2019-09-26 17:50

Rejestracja: 2 lata temu

Ostatnio: 1 godzina temu

0

Jak nie to? Każesz Django szukać templatek w katalogu store/templates, a nigdzie w ścieżce szablonu nie ma po drodze folderu store?

edytowany 1x, ostatnio: iksde, 2019-09-26 17:51

Pozostało 580 znaków

2019-09-26 18:11

Rejestracja: 2 lata temu

Ostatnio: 6 dni temu

0
iksde napisał(a):

Jak nie to? Każesz Django szukać templatek w katalogu store/templates, a nigdzie w ścieżce szablonu nie ma po drodze folderu store?

I store i Shop ma indentyczną strukturę jeśli chodzi o templates. Przesłałem printscr.

edytowany 1x, ostatnio: Szczekielnikow, 2019-09-26 18:11

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0