Code Monkey home page Code Monkey logo

Comments (14)

salvatorericcardi avatar salvatorericcardi commented on August 31, 2024 3

Si si confermo che funziona. Puoi chiudere la issue, alla prossima ;-)

from gasdottong.

madbob avatar madbob commented on August 31, 2024 1

@salvatorericcardi la pagina di login sull'istanza demo viene caricata in 747 millisecondi (incluso il redirect da / a /login), dunque no, direi che non è un problema del gestionale in sé. Magari è davvero un problema intrinseco di WSL; non saprei, siccome lavoro in locale sul mio PC ma nativamente senza Docker e su Linux.

PS: la issue la chiudo, ma se hai altre osservazioni sul comportamento su Docker in Windows appuntale pure qui.

from gasdottong.

PixelTux avatar PixelTux commented on August 31, 2024

Ciao @salvatorericcardi tecnicamente, il 99% di quello di cui hai bisogno è gestito da Docker. Mi sembra di capire che stai lavorando su Windows, quindi devi assicurarti di avere installato e abilitato Windows Subsystem per Linux 2 (WSL2) (https://laravel.com/docs/9.x/installation#getting-started-on-windows).

Ti consiglierei di provare a installare il progetto Laravel Sail (link) "base" da zero, così puoi cercare quello che ti manca in fase di debug. Una volta che quello gira, dovresti essere pronto per provare a installare GASdottoNG.

Ti lascio un altro link che potrebbe essere d'aiuto: https://dev.to/robencom/laravel-sail-on-windows-1pgk

Se per caso l'inglese non è il tuo forte, posso aiutarti anche con quello. Fammi sapere se hai bisogno di altro.

from gasdottong.

salvatorericcardi avatar salvatorericcardi commented on August 31, 2024

Sembra esserci un problema tra wsl2 e la mia build di windows 11 perché in effetti io non ho mai avuto problemi ad utilizzare laravel qualche tempo fa. A questo punto, penso che debba switchare perché non mi fa nemmeno installare Sail "base". Nel frattempo, se ti interessa possiamo approfondire forse (mi ripeto) c'è qualche falla nella build di windows 11.

Nel caso, fammi sapere dove posso contattarti.

from gasdottong.

PixelTux avatar PixelTux commented on August 31, 2024

Il problema è che non ho accesso a una macchina Windows. Tuttavia, da quello che ho visto online, ecco i passaggi io farei che tu forse potresti aver già seguito:

  1. Verifica la modalità WSL:
    wsl -l -v

Se non è v2:
wsl --set-default-version 2

(Nota: il comando wsl --set-version può essere utilizzato per eseguire il downgrade da WSL 2 a WSL 1 o per aggiornare le distribuzioni Linux precedentemente installate da WSL 1 a WSL 2.)

  1. Quando Docker Desktop si avvia, vai in Impostazioni > Risorse > Integrazione WSL.
    L'integrazione Docker-WSL è abilitata sulla distribuzione WSL predefinita, che è Ubuntu. Per cambiare la distro WSL predefinita, esegui:

wsl --set-default <nome distro> <versione WSL>

(Ad esempio, wsl --set-version Ubuntu-20.04 2)

  1. Seleziona Applica e riavvia.
    Risorse di riferimento:
    How to install Linux on Windows with WSL
    https://learn.microsoft.com/en-us/windows/wsl/install
    Docker Desktop WSL 2 backend on Windows
    https://docs.docker.com/desktop/wsl/

from gasdottong.

salvatorericcardi avatar salvatorericcardi commented on August 31, 2024

Avevo dimenticato di allegare uno screen che forse potrebbe essere d'aiuto...

image

Domanda

Se ho ben capito wsl permette l'utilizzo di comandi linux su windows, ad esempio in cmd. Se così fosse perché non mi funziona il dmesg, come si vede nello screen allegato?

I comandi

wsl --update per l'aggiornamento e wsl --set-default Ubuntu per la distro di default.

Dopo aver fatto lanciato i due comandi sopra, è importante lanciare il comando wsl per entrare lanciare comandi linux da windows, almeno per quanto mi riguarda.

PS Ho risolto, grazie del supporto ^_^

from gasdottong.

PixelTux avatar PixelTux commented on August 31, 2024

Adesso, con questo nuovo screenshot, ho visto che questo problema con wls si verifica anche quando si passa da Windows 10 a 11. (link). Buono a sapersi :)

"Il sottosistema Windows per Linux (WSL) consente agli sviluppatori di eseguire un ambiente GNU/Linux, inclusi quasi tutti gli strumenti da riga di comando, le utilità e le applicazioni, direttamente in Windows, senza modifiche e senza il sovraccarico di una macchina virtuale tradizionale o di una configurazione a doppio avvio." (link). Visto il "quasi", è probabile che il dmesg sia uno dei comandi non implementati.

Potreste cortesemente confermarmi che GASdottoNG ora gira sul tuo PC tramite Laravel Sail (docker)?

from gasdottong.

salvatorericcardi avatar salvatorericcardi commented on August 31, 2024

Ancora non gira, ma allego il log del servizio laravel.test che poi corrisponde a quello che secondo me è il problema:

2023-12-02 15:38:11 2023-12-02 14:38:11,941 INFO Set uid to user 0 succeeded
2023-12-02 15:38:11 2023-12-02 14:38:11,943 INFO supervisord started with pid 1
2023-12-02 15:38:12 2023-12-02 14:38:12,946 INFO spawned: 'php' with pid 16
2023-12-02 15:38:13 2023-12-02 14:38:13,948 INFO success: php entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-12-02 15:38:29 
2023-12-02 15:38:29    INFO  Server running on [http://0.0.0.0:80].  
2023-12-02 15:38:29 
2023-12-02 15:38:29   Press Ctrl+C to stop the server
2023-12-02 15:38:29 
2023-12-02 15:39:36   2023-12-02 14:39:21 .................................................. ~ 15s
2023-12-02 15:44:40   2023-12-02 14:39:36 ................................................. ~ 304s
2023-12-02 15:44:52   2023-12-02 14:44:40 .................................................. ~ 12s
2023-12-02 15:44:52   2023-12-02 14:44:40 .................................................. ~ 12s
2023-12-02 15:45:22   2023-12-02 14:45:14 ................................................... ~ 7s

La porta esposta è corretta, ma l'host di uscita dovrebbe risultare localhost e non 0.0.0.0:80, giusto? Infatti se mi connetto su localhost rimane eternamente in caricamento, come puoi vedere dal log, mentre se mi connetto a 0.0.0.0:80 ovviamente restituisce ERR_ADDRESS_INVALID.

Da ricerche fatte, la migliore soluzione l'ho trovata qui ma non capisco come implementarla, anche se ho capito che la chiave sta in extra_hosts all'interno del docker compose.

PS Facendo ping mi ritorna 4 pacchetti su 4 con richiesta scaduta, quindi persi. In sostanza, la bridge network nel mio caso specifico (Windows 11 OS) non va all'esterno della sua rete, atterrando sulla rete locale (localhost). Magari su Linux o Mac funziona, ma su Windows sembra non funzionare. Poi non so se è un problema solo mio, ma al momento abbiamo solo il mio feedback.

from gasdottong.

PixelTux avatar PixelTux commented on August 31, 2024

Capisco, prima di controllare se il problema è il extra_hosts, vorrei vedere alcune cose. Questo è quello che vedo nel mio setup:
Screenshot from 2023-12-02 16-17-49
Potresti per favore mostrarmi cosa vedi eseguendo questi passaggi?

  1. Assicurati di fermare
    sail sail stop
  2. Avvia sail
    sail up -d
  3. Visualizza i container in esecuzione
    docker ps
    Come puoi vedere in questo ultimo comando, puoi visualizzare le porte utilizzate da ciascun container. Nel mio caso, ho:
    NAME______________________PORT
    code-laravel.test-1_________localhost:80
    code-mailpit-1_____________localhost:8025
    Indipendentemente dal fatto che io utilizzi localhost:80 o 0.0.0.0:80, funziona.

Potresti per favore condividere il file .env? Così posso verificare se il set up per Docker è corretto.

from gasdottong.

salvatorericcardi avatar salvatorericcardi commented on August 31, 2024

E' partito ma ci mette un'eternità ad andare da localhost a localhost/login perciò stavo impazzendo. Quindi il problema non è se parte o meno, ma perché è così lento come puoi vedere dal log:

2023-12-02 17:50:58 2023-12-02 16:50:58,321 WARN received SIGTERM indicating exit request
2023-12-02 17:50:58 2023-12-02 16:50:58,322 INFO waiting for php to die
2023-12-02 17:50:59 2023-12-02 16:50:59,331 INFO stopped: php (terminated by SIGTERM)
2023-12-02 17:51:05 usermod: no changes
2023-12-02 17:51:05 2023-12-02 16:51:05,482 INFO Set uid to user 0 succeeded
2023-12-02 17:51:05 2023-12-02 16:51:05,485 INFO supervisord started with pid 1
2023-12-02 17:51:06 2023-12-02 16:51:06,489 INFO spawned: 'php' with pid 9
2023-12-02 17:51:07 2023-12-02 16:51:07,492 INFO success: php entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2023-12-02 17:51:18 
2023-12-02 17:51:18    INFO  Server running on [http://0.0.0.0:80].  
2023-12-02 17:51:18 
2023-12-02 17:51:18   Press Ctrl+C to stop the server
2023-12-02 17:51:18 
2023-12-02 17:51:28   2023-12-02 16:51:20 ................................................... ~ 8s
2023-12-02 17:53:41   2023-12-02 16:51:28 ................................................. ~ 133s
2023-12-02 17:53:41   2023-12-02 16:53:41 /images/gasdotto.jpg .............................. ~ 0s
2023-12-02 17:53:41   2023-12-02 16:53:41 /images/loading.svg ............................... ~ 0s
2023-12-02 17:53:41   2023-12-02 16:53:41 /js/lang/bootstrap-datepicker.it-IT.min.js ........ ~ 0s
2023-12-02 17:53:41   2023-12-02 16:53:41 /css/gasdotto.css?id=d85bd1fb9031f9b89c6ad4a2f552592f  ~ 0s
2023-12-02 17:53:41   2023-12-02 16:53:41 /js/lang/it-IT.js ................................. ~ 0s
2023-12-02 17:53:41   2023-12-02 16:53:41 /js/gasdotto.js?id=a070d636f9a6e750dfd7090f164daf61  ~ 0s
2023-12-02 17:53:42   2023-12-02 16:53:42 /favicon.ico ...................................... ~ 0s

Idem per entrare nel gestionale. A te anche è così lento quando lo lanci in localhost?

@madbob faccio solo una piccola parentesi e non so se è solo un problema mio, ma io avviai tempo fa il progetto in locale senza docker ed era lento ugualmente anche se non così tanto.

from gasdottong.

PixelTux avatar PixelTux commented on August 31, 2024

Da me funziona super veloce, ma il primo avvio potrebbe essere un po' più lento.
Un'altra possibile spiegazione è che su Linux il programma gira nello stesso sistema operativo del host. Questo gli permette di condividere molte delle risorse del sistema operativo host. Su Windows, invece, il programma gira in una sorta di macchina virtuale (WLS) che condivide la CPU con Windows. Quindi, se ho capito bene, dovresti controllare le risorse allocate per WLS. Non sono un esperto di WLS, tutto quello che so l'ho imparato tra ieri e oggi.

code git:(master) docker logs --follow code-laravel.test-1
2023-11-23 21:40:06,639 INFO Set uid to user 0 succeeded
2023-11-23 21:40:06,640 INFO supervisord started with pid 1
2023-11-23 21:40:07,643 INFO spawned: 'php' with pid 16

   INFO  Server running on [http://0.0.0.0:80].  

  Press Ctrl+C to stop the server

2023-11-23 21:40:09,454 INFO success: php entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
  2023-11-23 21:40:36 ................................................... ~ 1s
  2023-11-23 21:40:37 ................................................... ~ 0s
  2023-11-23 21:40:45 ................................................... ~ 0s
  2023-11-23 21:40:45 ................................................... ~ 0s
2023-11-23 21:40:59,501 WARN received SIGTERM indicating exit request
2023-11-23 21:40:59,501 INFO waiting for php to die
2023-11-23 21:41:00,508 INFO stopped: php (terminated by SIGTERM)
usermod: no changes
2023-11-23 21:41:20,933 INFO Set uid to user 0 succeeded
2023-11-23 21:41:20,934 INFO supervisord started with pid 1
2023-11-23 21:41:21,937 INFO spawned: 'php' with pid 9

   INFO  Server running on [http://0.0.0.0:80].  

  Press Ctrl+C to stop the server

2023-11-23 21:41:23,663 INFO success: php entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
  2023-11-23 21:41:35 ................................................... ~ 0s

   INFO  Environment modified. Restarting server...  

   INFO  Server running on [http://0.0.0.0:80].  

  Press Ctrl+C to stop the server

2023-11-23 21:53:33,853 WARN received SIGTERM indicating exit request
2023-11-23 21:53:33,854 INFO waiting for php to die
2023-11-23 21:53:34,861 INFO stopped: php (terminated by SIGTERM)
usermod: no changes
2023-11-23 21:53:56,620 INFO Set uid to user 0 succeeded
2023-11-23 21:53:56,621 INFO supervisord started with pid 1
2023-11-23 21:53:57,624 INFO spawned: 'php' with pid 9

   INFO  Server running on [http://0.0.0.0:80].  

  Press Ctrl+C to stop the server

2023-11-23 21:53:59,355 INFO success: php entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
  2023-11-23 21:54:46 ................................................... ~ 0s
  2023-11-23 21:54:49 ................................................... ~ 0s
  2023-11-23 21:54:49 ................................................... ~ 0s
2023-11-23 21:55:58,997 WARN received SIGTERM indicating exit request
2023-11-23 21:55:58,998 INFO waiting for php to die
2023-11-23 21:56:00,003 INFO stopped: php (terminated by SIGTERM)
usermod: no changes
2023-11-23 21:59:11,216 INFO Set uid to user 0 succeeded
2023-11-23 21:59:11,217 INFO supervisord started with pid 1
2023-11-23 21:59:12,220 INFO spawned: 'php' with pid 9

   INFO  Server running on [http://0.0.0.0:80].  

  Press Ctrl+C to stop the server

from gasdottong.

PixelTux avatar PixelTux commented on August 31, 2024

@salvatorericcardi forse lo sai già, ma te lo dico lo stesso: per un seed un po' più ricco di dati all'inizio, io ho usato php artisan db:seed --class=DemoSeeder.
Comunque puoi solo confermarmi che GASdottoNG ora gira anche se lento?

from gasdottong.

madbob avatar madbob commented on August 31, 2024

@salvatorericcardi ma ti risulta lento solo al primo avvio, o proprio sempre?

Al primo avvio dovrebbe innescarsi la procedura automatica di migrazione e seeding, gestito da CheckInstall, il quale si basa sul valore di APP_KEY per decidere se fare tutta la procedura o meno. E, se sì, la cambia in modo da non rifarla più.

Potrebbe essere che il Docker si avvia sempre col .env di default, dunque tutte le volte ci ripassa?

Suggerimenti su come migliorare questa attivazione della procedura di installazione sono benvenuti. Ad esempio si potrebbe controllare la presenza della tabella gas sul DB (se non c'è, vuol dire che le migrazioni sono ancora da fare) ma a patto che questo middleware venga spostato da un'altra parte, per essere eseguito solo sulle rotte di autenticazione, altrimenti farebbe la query extra di controllo al DB per ogni richiesta HTTP in ingresso (cosa che eviterei).

from gasdottong.

salvatorericcardi avatar salvatorericcardi commented on August 31, 2024

Per Docker confermo quanto detto da PixelTux, cioè girando il mio Docker su Windows e basando il docker engine su WSL le risorse sono limitate al minimo, motivo per cui il gestionale risulta lentissimo. Su Windows questa soluzione può essere velocizzata con il file .wslconfig aumentando le risorse allocate per i container docker. Link

@madbob se la risposta ad un'azione dovrebbe essere quasi istantanea, a me risulta lento sempre. Forse dipende dall'architettura del gestionale, ma devo verificare con la console quale dei file rallenta il suo funzionamento.

Comunque ricordiamoci che io sto girando in localhost su server Apache, quindi utilizzo le risorse del pc che non è ottimizzato per lo sviluppo. Mi domando se anche girando sull'hosting di un provider dia gli stessi risultati, seppure non sarà mai lento quanto il mio pc.

UP Una volta eseguito l'accesso, e già lì c'è un redirect 302 che mi blocca 6 secondi circa, ma penso sia normale il redirect. Poi tento di andare in profilo "globale amministratore" e impiega 20 secondi circa per il caricamento di profile (il file principale, non gli asset), come si può notare dall'immagine allegata. Ripeto forse da provider non te ne accorgi nemmeno...
image

PS Se lo reputi necessario, puoi spostare questa conversazione su un'altra issue essendo che su docker abbiamo risolto.

from gasdottong.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.