problem z uruchomieniem projektu w przeglądarce

0

Mam projekt w laravel i próbuję otworzyć go w przeglądarce za pomocą polecenia php artisan serve, ale mam coś takiego

root@139716523f70:/app# php artisan serve
Xdebug: [Config] The setting 'xdebug.profiler_enable_trigger' has been renamed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-xdebug.profiler_enable_trigger (See: https://xdebug.org/docs/errors#CFG-C-CHANGED)

WARN  Xdebug: [Config] The setting 'xdebug.profiler_enable_trigger' has been renamed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-xdebug.profiler_enable_trigger (See: https://xdebug.org/docs/errors#CFG-C-CHANGED).

WARN  Failed to listen on 127.0.0.1:8000 (reason: Address already in use).

WARN  Xdebug: [Config] The setting 'xdebug.profiler_enable_trigger' has been renamed, see the upgrading guide at https://xdebug.org/docs/upgrade_guide#changed-xdebug.profiler_enable_trigger (See: https://xdebug.org/docs/errors#CFG-C-CHANGED).

INFO  Server running on [http://127.0.0.1:8001].

na adresie http://127.0.0.1:8001 także nie wczytuje strony i nie wiem gdzie może być błąd i jak go rozwiązać

0

A "nie wczytuje strony", tzn co dokładnie? Connection refused? Dostajesz odpowiedź http? Jakiś wyjątek? Co dokładnie się dzieje?

Ustaw sobie APP_DEBUG=true, i zobacz dokładnie co się dzieje, ewentualnie przejrzyj logi w katalogu storage/.

0
Riddle napisał(a):

A "nie wczytuje strony", tzn co dokładnie? Connection refused? Dostajesz odpowiedź http? Jakiś wyjątek? Co dokładnie się dzieje?

Ustaw sobie APP_DEBUG=true, i zobacz dokładnie co się dzieje, ewentualnie przejrzyj logi w katalogu storage/.

no właśnie nie dostaje żadnej odpowiedzi http

0
Joan napisał(a):
Riddle napisał(a):

A "nie wczytuje strony", tzn co dokładnie? Connection refused? Dostajesz odpowiedź http? Jakiś wyjątek? Co dokładnie się dzieje?

Ustaw sobie APP_DEBUG=true, i zobacz dokładnie co się dzieje, ewentualnie przejrzyj logi w katalogu storage/.

no właśnie nie dostaje żadnej odpowiedzi http

Nie dostajesz czy nie widzisz? Niektóre przeglądarki pokazuję błąd 500 tak samo jak niepoprawne połączenie.

Ale jeśli na prawdę nie dostajesz odpowiedzi, to albo się nie połączyłeś do serwera, albo serwer robi timeout. Uruchamiasz apkę z dockera? Jeśli tak, to musisz otworzyć port 8081, np przekazując -p 8081:8081.

0
Riddle napisał(a):
Joan napisał(a):
Riddle napisał(a):

A "nie wczytuje strony", tzn co dokładnie? Connection refused? Dostajesz odpowiedź http? Jakiś wyjątek? Co dokładnie się dzieje?

Ustaw sobie APP_DEBUG=true, i zobacz dokładnie co się dzieje, ewentualnie przejrzyj logi w katalogu storage/.

no właśnie nie dostaje żadnej odpowiedzi http

Nie dostajesz czy nie widzisz? Niektóre przeglądarki pokazuję błąd 500 tak samo jak niepoprawne połączenie.

Ale jeśli na prawdę nie dostajesz odpowiedzi, to albo się nie połączyłeś do serwera, albo serwer robi timeout. Uruchamiasz apkę z dockera? Jeśli tak, to musisz otworzyć port 8081, np przekazując -p 8081:8081.

Tak uruchamiam z dockera, jak mogę otworzyć port 8081 bo już się pogubiłem

0
Joan napisał(a):

Tak uruchamiam z dockera, jak mogę otworzyć port 8081 bo już się pogubiłem

Domyślnie, docker separuje maszyny wirtualne od systemu operacyjnego, tak by zapewnić jak największą izolację - maszyna w dockerze ma osobną sieć, osobny system plików, osobny ram, etc.

Czasem jednak chcemy trochę komunikacji pomiędzy gospodarzem (czyli naszym systemem operacyjnym), a kontenerem. Żeby otworzyć jeden port, w tym wypadku 8081, zależnie od tego w jaki sposób uruchamiasz kontener, możesz to zrobić tak:

  • Jeśli uruchamiasz go poleceniem docker run, to przekaż argument -p 8081:8081.
  • Jeśli uruchamiasz go korzystając z docker compose, to dodaj odpowiedni parametr w docker-compose.yaml.
0
Riddle napisał(a):
Joan napisał(a):

Tak uruchamiam z dockera, jak mogę otworzyć port 8081 bo już się pogubiłem

Domyślnie, docker separuje maszyny wirtualne od systemu operacyjnego, tak by zapewnić jak największą izolację - maszyna w dockerze ma osobną sieć, osobny system plików, osobny ram, etc.

Czasem jednak chcemy trochę komunikacji pomiędzy gospodarzem (czyli naszym systemem operacyjnym), a kontenerem. Żeby otworzyć jeden port, w tym wypadku 8081, zależnie od tego w jaki sposób uruchamiasz kontener, możesz to zrobić tak:

  • Jeśli uruchamiasz go poleceniem docker run, to przekaż argument -p 8081:8081.
  • Jeśli uruchamiasz go korzystając z docker compose, to dodaj odpowiedni parametr w docker-compose.yaml.

używam polecenia docker compose exec app bash, tylko w którym miejscu mam dodać parametr w pliku docker-compose-.yaml ?

0

Masz w katalogu projektu plik docker-compose.yaml? Jeśli tak, to wklej jego tutaj jego treść.

Jeśli Twój kontener nazywa się app, to prawdopodobnie powinieneś mieć coś takiego:

version: '3.5'

services:
  app:
    image: php
    ports:
      - "8081:8081"   # tą linijkę dodaj, jeśli jeszcze jej nie masz
0
Riddle napisał(a):

Masz w katalogu projektu plik docker-compose.yaml? Jeśli tak, to wklej jego tutaj jego treść.

Jeśli Twój kontener nazywa się app, to prawdopodobnie powinieneś mieć coś takiego:

version: '3.5'

services:
  app:
    image: php
    ports:
      - "8081:8081"   # tą linijkę dodaj, jeśli jeszcze jej nie masz
version: '3.1'
services:
  app:
    container_name: ${CONTAINER_NAME}
    build:
      context: .
      dockerfile: Dockerfile
    labels:
      - traefik.enable=true
      - traefik.http.routers.${CONTAINER_NAME}-app-web.rule=Host(`${HOST}`)
      - traefik.http.routers.${CONTAINER_NAME}-app-web.entrypoints=web
      # https is optional, delete next lines when you don't need this
#      - traefik.http.middlewares.${CONTAINER_NAME}-app-redirect-websecure.redirectscheme.scheme=https
#      - traefik.http.routers.${CONTAINER_NAME}-app-web.middlewares=${CONTAINER_NAME}-app-redirect-websecure
      - traefik.http.routers.${CONTAINER_NAME}-app-websecure.rule=Host(`${HOST}`)
      - traefik.http.routers.${CONTAINER_NAME}-app-websecure.tls=true
      - traefik.http.routers.${CONTAINER_NAME}-app-websecure.entrypoints=websecure
    networks:
      - private
      - traefik_webgateway
    links:
      - redis
    volumes:
      - /app/vendor/
      - ./app/:/app/
      - ./:/docker/
    # cap and privileged needed for slowlog
    cap_add:
      - SYS_PTRACE
    privileged: true
    env_file:
      - etc/environment.yml
      - etc/environment.development.yml
    environment:
#      - WEB_ALIAS_DOMAIN=${HOST}
      - COMPOSER_MEMORY_LIMIT=-1
    extra_hosts:
      - "host.docker.internal:host-gateway"

  redis:
    image: redis
    volumes:
      - redis:/data
    env_file:
      - etc/environment.yml
      - etc/environment.development.yml
    networks:
      - private

  db:
    image: mariadb
    container_name: ${CONTAINER_NAME}_db
    ports:
      - 3307:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=db
    volumes:
      - ${MYSQL_VOLUME_NAME}:/var/lib/mysql
      - ./etc/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
      - private

  db_test:
    image: mariadb
    container_name: ${CONTAINER_NAME}_db_test
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=db
    volumes:
      - ./etc/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
      - private

  db_whoelse:
    image: mariadb:10.0
    ports:
      - 3308:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=whoelse
    volumes:
      - mysql_whoelse:/var/lib/mysql
      - ./etc/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
      - private

  pma:
    image: phpmyadmin
    container_name: ${CONTAINER_NAME}_pma
    links:
      - db
    labels:
      - traefik.enable=true
      - traefik.http.routers.${CONTAINER_NAME}-pma-web.rule=Host(`pma-${HOST}`)
      - traefik.http.routers.${CONTAINER_NAME}-pma-web.entrypoints=web
    environment:
     UPLOAD_LIMIT: 1G
     PMA_HOSTS: db,db_whoelse,db_test
    volumes:
      - ./persistence/phpmyadmin:/sessions
    networks:
      - private
      - traefik_webgateway

  maildev:
    image: dominikserafin/maildev
    container_name: ${CONTAINER_NAME}_maildev
#    ports:
#      - 1080:1080
    networks:
      - private
      - traefik_webgateway
    labels:
      - traefik.enable=true
      - traefik.http.services.${CONTAINER_NAME}-maildev-web.loadbalancer.server.port=1080
      - traefik.http.routers.${CONTAINER_NAME}-maildev-web.rule=Host(`maildev-${HOST}`)
      - traefik.http.routers.${CONTAINER_NAME}-maildev-web.entrypoints=web
    command: bin/maildev --web 1080 --smtp 1025 --hide-extensions STARTTLS

  meilisearch:
    image: getmeili/meilisearch:v0.20.0
    command: ./meilisearch --master-key=${MEILI_MASTER_KEY}
    ports:
      - 7700:7700
    volumes:
      - ./data.ms:/data.ms

volumes:
  # to create this volume run command: docker volume create --name=mysql_fiction_explorer
  mysql_pets:
    external:
      true
  mysql_whoelse:
    external:
      true
  redis:
  phpmyadmin:

networks:
  traefik_webgateway:
    external: true
  private:
    driver: bridge

0

No to dałem Ci odpowiedź:

Jeśli Twój kontener nazywa się app, to prawdopodobnie powinieneś mieć coś takiego:

version: '3.5'

services:
  app:
    ports:
      - "8081:8081"   # tą linijkę dodaj, jeśli jeszcze jej nie masz
0
Riddle napisał(a):

No to dałem Ci odpowiedź:

Jeśli Twój kontener nazywa się app, to prawdopodobnie powinieneś mieć coś takiego:

version: '3.5'

services:
  app:
    ports:
      - "8081:8081"   # tą linijkę dodaj, jeśli jeszcze jej nie masz

Teraz przy próbie docker compose exec app bash mam błąd

PS C:\Users\user\Desktop\\app> docker compose exec app bash                       
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"HOST\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"HOST\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"MEILI_MASTER_KEY\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"HOST\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"HOST\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"MYSQL_VOLUME_NAME\" variable is not set. Defaulting to a blank string."
time="2024-02-17T21:19:48+01:00" level=warning msg="The \"CONTAINER_NAME\" variable is not set. Defaulting to a blank string."
1 error(s) decoding:

* error decoding 'Volumes[0]': invalid spec: :/var/lib/mysql: empty section between colons

0
Joan napisał(a):

Teraz przy próbie docker compose exec app bash mam błąd

Wklej treść.

0
Riddle napisał(a):
Joan napisał(a):

Teraz przy próbie docker compose exec app bash mam błąd

Wklej treść.

wkleiłem wyżej co mi się pojawia po wpisaniu tej komendy

0
Joan napisał(a):
Riddle napisał(a):
Joan napisał(a):

Teraz przy próbie docker compose exec app bash mam błąd

Wklej treść.

wkleiłem wyżej co mi się pojawia po wpisaniu tej komendy

Wklej treść docker-compose.yaml.

0
Riddle napisał(a):
Joan napisał(a):
Riddle napisał(a):
Joan napisał(a):

Teraz przy próbie docker compose exec app bash mam błąd

Wklej treść.

wkleiłem wyżej co mi się pojawia po wpisaniu tej komendy

Wklej treść docker-compose.yaml.

version: '3.1'
services:
  app:
    ports:
      - "8081:8081"
    container_name: ${CONTAINER_NAME}
    build:
      context: .
      dockerfile: Dockerfile
    labels:
      - traefik.enable=true
      - traefik.http.routers.${CONTAINER_NAME}-app-web.rule=Host(`${HOST}`)
      - traefik.http.routers.${CONTAINER_NAME}-app-web.entrypoints=web
      # https is optional, delete next lines when you don't need this
      - traefik.http.middlewares.${CONTAINER_NAME}-app-redirect-websecure.redirectscheme.scheme=https
      - traefik.http.routers.${CONTAINER_NAME}-app-web.middlewares=${CONTAINER_NAME}-app-redirect-websecure
      - traefik.http.routers.${CONTAINER_NAME}-app-websecure.rule=Host(`${HOST}`)
      - traefik.http.routers.${CONTAINER_NAME}-app-websecure.tls=true
      - traefik.http.routers.${CONTAINER_NAME}-app-websecure.entrypoints=websecure
    networks:
      - private
      - traefik_webgateway
    links:
      - redis
    volumes:
      - /app/vendor/
      - ./app/:/app/
      - ./:/docker/
    # cap and privileged needed for slowlog
    cap_add:
      - SYS_PTRACE
    privileged: true
    env_file:
      - etc/environment.yml
      - etc/environment.development.yml
    environment:
      #      - WEB_ALIAS_DOMAIN=${HOST}
      - COMPOSER_MEMORY_LIMIT=-1
    extra_hosts:
      - "host.docker.internal:host-gateway"

  redis:
    image: redis
    volumes:
      - redis:/data
    env_file:
      - etc/environment.yml
      - etc/environment.development.yml
    networks:
      - private

  db:
    image: mariadb
    container_name: ${CONTAINER_NAME}_db
    ports:
      - 3307:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=db
    volumes:
      - ${MYSQL_VOLUME_NAME}:/var/lib/mysql
      - ./etc/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
      - private

  db_test:
    image: mariadb
    container_name: ${CONTAINER_NAME}_db_test
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=db
    volumes:
      - ./etc/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
      - private

  db_whoelse:
    image: mariadb:10.0
    ports:
      - 3308:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=whoelse
    volumes:
      - mysql_whoelse:/var/lib/mysql
      - ./etc/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf
    networks:
      - private

  pma:
    image: phpmyadmin
    container_name: ${CONTAINER_NAME}_pma
    links:
      - db
    labels:
      - traefik.enable=true
      - traefik.http.routers.${CONTAINER_NAME}-pma-web.rule=Host(`pma-${HOST}`)
      - traefik.http.routers.${CONTAINER_NAME}-pma-web.entrypoints=web
    environment:
      UPLOAD_LIMIT: 1G
      PMA_HOSTS: db,db_whoelse,db_test
    volumes:
      - ./persistence/phpmyadmin:/sessions
    networks:
      - private
      - traefik_webgateway

  maildev:
    image: dominikserafin/maildev
    container_name: ${CONTAINER_NAME}_maildev
    #    ports:
    #      - 1080:1080
    networks:
      - private
      - traefik_webgateway
    labels:
      - traefik.enable=true
      - traefik.http.services.${CONTAINER_NAME}-maildev-web.loadbalancer.server.port=1080
      - traefik.http.routers.${CONTAINER_NAME}-maildev-web.rule=Host(`maildev-${HOST}`)
      - traefik.http.routers.${CONTAINER_NAME}-maildev-web.entrypoints=web
    command: bin/maildev --web 1080 --smtp 1025 --hide-extensions STARTTLS

  meilisearch:
    image: getmeili/meilisearch:v0.20.0
    command: ./meilisearch --master-key=${MEILI_MASTER_KEY}
    ports:
      - 7700:7700
    volumes:
      - ./data.ms:/data.ms

volumes:
  # to create this volume run command: docker volume create --name=mysql_fiction_explorer
  mysql_pets:
    external:
      true
  mysql_whoelse:
    external:
      true
  redis:
  phpmyadmin:

networks:
  traefik_webgateway:
    external: true
  private:
    driver: bridge
0

Z jednej strony błąd mówi "empty section between colons"

Joan napisał(a):
* error decoding 'Volumes[0]': invalid spec: :/var/lib/mysql: empty section between colons

Z drugiej, robisz patha ze zmiennej.

volumes:
  - ${MYSQL_VOLUME_NAME}:/var/lib/mysql
  - ./etc/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf

Logiczna konkluzja jest taka że zmienna MYSQL_VOLUME_NAME jest pusta albo niezdefiniowana.

0
Riddle napisał(a):

Z jednej strony błąd mówi "empty section between colons"

Joan napisał(a):
* error decoding 'Volumes[0]': invalid spec: :/var/lib/mysql: empty section between colons

Z drugiej, robisz patha ze zmiennej.

volumes:
  - ${MYSQL_VOLUME_NAME}:/var/lib/mysql
  - ./etc/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf

Logiczna konkluzja jest taka że zmienna MYSQL_VOLUME_NAME jest pusta albo niezdefiniowana.

Tylko że mam stworzony volume za pomocą docker volume create mysql_pets i zgadza się z tym co jest w pliku .env

0

No widocznie zmienna MYSQL_VOLUME_NAME jest pusta albo niezainicjalizowana.

0

Spróbuj dla testu wstawić tą wartość na sztywno a nie z env, czasami zdarza się, że plik env jeśli korzystasz z wsl ma złe kodowanie i przez to zmienne z env się nie wczytują.

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