Błąd "invalid Host header" podczas uruchamiania serwera w koneterze

0

Właśnie ucze sie dockera poniewaz na produkcji aplikacja działa niepoprawnie pomimo tego,ze testy przechodza prawidłowo. Gdy chce uruchomic sudo docker-compose up otrzymuje błąd: http: invalid Host header. Mam jeszcze jedno pytanie jak skonfigurowac pliki dockera zeby tworzyc kontener z plikiem db.sqlite3? moje pliki dockera wygladaja nastepujaco:

Dockerfile:

FROM python:3.8
WORKDIR /code
COPY var/docs/requirments.txt /code/
RUN pip install -r requirments.txt
COPY . /code/

Docker-compose.yml:

version: "3.9"

services:
  db:
    image: postgres
    environment:
      - POSTGRES_DB = 10
      - POSTGRES_USER = postgres
      - POSTGRES_PASSWORD = 1
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:9010
    volumes:
      - .:/code/
    ports:
      - "9010:9010"
    depends_on:
      - db
0
hubertsuder napisał(a):
command: python manage.py runsever 0.0.0.0:9010

jest taka komenda w ogóle?

jak robisz build . to znaczy, że masz plik DockerFile i w nim powinieneś mieć uruchomienie tego pythona + zainstalowanie dependecies.

0
fdsa napisał(a):
hubertsuder napisał(a):
command: python manage.py runsever 0.0.0.0:9010

jest taka komenda w ogóle?

jak robisz build . to znaczy, że masz plik DockerFile i w nim powinieneś mieć uruchomienie tego pythona + zainstalowanie dependecies.

poprawilem literówke

0

Wpuścisz na remote desktop bo nie widzę co tam źle zrobiłeś.

Dodaj sobie docker group do swojego konta to bez sudo będziesz mógł korzystać z dockera.
https://docs.docker.com/engine/install/linux-postinstall/

0
fdsa napisał(a):

Wpuścisz na remote desktop bo nie widzę co tam źle zrobiłeś.

Dodaj sobie docker group do swojego konta to bez sudo będziesz mógł korzystać z dockera.
https://docs.docker.com/engine/install/linux-postinstall/

jak mam Cie wpuscic na remote desktop?

komenda sudo docker build . przechodzi poprawnie i wszystko sie do konca wykonuje... czyli co? tworzone sa wtedy contenery? ucze sie dopiero dockera

0

Dodaj do DockerFile


CMD [ "python3", "manage.py" , "runserver", "0.0.0.0:9010"]

i wywal z docker compose command: python manage.py runserver 0.0.0.0:9010

W pythonie aplikacji łącz się z bazą danych po adresie db taką domeną jaką w docker compose ustawiłeś.

0

W pythonie aplikacji łącz się z bazą danych po adresie db taką domeną jaką w docker compose ustawiłeś.

możesz dać przykład? bo nie do końca rozumie...

mój plik Dockerfile wyglada teraz tak:

FROM python:3.10.12
WORKDIR /code
COPY /var/docs/requirments.txt /code/
RUN pip install -r requirments.txt
COPY . /code/
CMD [ "python3", "manage.py" , "runserver", "0.0.0.0:9010"]
0

Wklepuje komende sudo docker-compose up i otrzymuje nastepujacy blad:

hubert@developer:~/monkey-shop.pl$ sudo docker-compose up
[+] Running 1/1
 ! django Warning                                                                                                                                                  2.2s 
[+] Building 34.4s (1/1) FINISHED                                                                                                                                       
 => ERROR [internal] booting buildkit                                                                                                                             34.4s
 => => pulling image moby/buildkit:buildx-stable-1                                                                                                                19.2s
 => => creating container buildx_buildkit_default                                                                                                                 15.1s
------
 > [internal] booting buildkit:
#0 34.37 time="2023-11-29T10:35:06Z" level=warning msg="using host network as the defaultime="2023-11-29T10:35:06Z" level=warning msg="using host network as the default"
#0 34.37 time="2023-11-29T10:35:06Z" level=warning msg="skipping containerd worker, as \"/run/containerd/containerd.sock\" does not exist"
#0 34.37 dtime="2023-11-29T10:35:06Z" level=info msg="found 1 workers, default=\"hujckj5p8qn43p2vfnwdng24m\""
#0 34.37 time="2023-11-29T10:35:06Z" level=warning msg="skipping containerd worker, as \"/run/containerd/containerd.sock\" does not exist"
#0 34.37 time="2023-11-29T10:35:06Z" level=warning msg="currently, only the default worker can be used."
#0 34.37 time="2023-11-29T10:35:06Z" level=warning msg="currently, only the default worker can be used."
#0 34.37 
------
http: invalid Host header

Pomóż ktoś , proszę

Mój dockerfile:

FROM python:3.9

ENV PYTHONBUFFERED 1

WORKDIR /code
COPY . /code/
COPY /var/docs/requirments.txt /code/

RUN pip install -r requirments.txt

i docker-compose.yaml:

version: '3.9'

services:
  django:
    image: django-docker:0.0.1
    build: .
    command: sudo python manage.py runserver 0.0.0.0:9010
    ports:
      - 9010:9010
    volumes:
      - db.sqlite3
0

Teraz widać
ERROR [internal] booting buildkit
Jakiś wewnętrzny błąd, na stackoverflow są takie odpowiedzi do tego:
https://stackoverflow.com/questions/77225539/docker-compose-error-internal-booting-buildkit-http-invalid-host-header

Ktoś tam sugeruje użycie sudo, inny dodanie zmiennej środowiskowej, która zapobiega użycia tego buildkit
Ktoś inny sugerował reinstall dockera.

To nie żadne problem z twoim kodem, a docker ma jakiś błąd wewnętrzny.

0

Już sobie poradziłem. Problem rozwiazalo sudo apt-get install dokcer-compose

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