Comments (14)
Si si confermo che funziona. Puoi chiudere la issue, alla prossima ;-)
from gasdottong.
@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.
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.
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.
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:
- 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.)
- 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
)
- 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.
Avevo dimenticato di allegare uno screen che forse potrebbe essere d'aiuto...
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.
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.
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.
Capisco, prima di controllare se il problema è il extra_hosts, vorrei vedere alcune cose. Questo è quello che vedo nel mio setup:
Potresti per favore mostrarmi cosa vedi eseguendo questi passaggi?
- Assicurati di fermare
sail sail stop
- Avvia sail
sail up -d
- 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.
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.
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.
@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.
@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.
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...
PS Se lo reputi necessario, puoi spostare questa conversazione su un'altra issue essendo che su docker abbiamo risolto.
from gasdottong.
Related Issues (20)
- Utenti/Gestione quota: la cancellazione di una quota non ha alcun effetto, pur senza segnalazione di errore. Idem se la cancellazione viene fatta da Contsbilità
- Attempt to assignment "target" property on null HOT 4
- Ordini/Dettaglio consegne e Riassunto prodotti: conteggia erroneamente modificatori "passivi"
- Luoghi di consegna: aggiungere un parametro globale per definire la modalità di utilizzo (informativo/filtro) HOT 1
- trattare username come email
- Utenti/Anagrafica: sarebbe un grande impegno aggiungere anche il luogo di nascita oltre alla data?
- Semplificazione delle Installazioni Docker HOT 8
- Prodotti: uso e impostazione del campo "Variabile" HOT 1
- Ordini/Consegna: non compare più il credito disponibile del socio all'atto del pagamento della Prenotazione
- eliminazione date del calendario
- Ordini: in fase di apertura di nuovo ordine non propone più le date memorizzate con la funzione Gestione date
- Generale: inserire barra rossa in fondo quando si cambia qualcosa nella videata
- controllo valori dei modificatori
- semplificare importazione di listino esportato
- Contabilità: il campo Identificativo non compare in modifica per alcuni tipi movimento e non viene estratto in caso di export
- Generale: per situazioni come quella appena avvenuta non potrebbe essere utile inserire un meccanismo di comunicazione "globale" che permetta di raggiungere tutte le istanze attive di gasdotto?
- pulsante "Elimina" sugli ordini
- Utenti/Esporta CSV: mancano luogo e data di nascita
- Utenti/Export CSV: prevedere l'export dei soli utenti selezionati
- opzione per eliminazione profilo utente
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gasdottong.