Coyote to nazwa systemu obsługującego serwis [4programmers.net].
.env
, bazując na .env.default
cp .env.default .env
make up
docker compose up
Jeśli uruchomienie aplikacji nie udaje się na systemie Windows, usuń -u nginx
z pliku Makefile
z każdej komendy, i spróbuj ponownie.
make install-dev
make install
localhost:8880
admin
można zalogować się hasłem 123
.make stop
docker compose stop
By skorzystać z xdebug, w pliku .env
należy dodać ustawienia xdebug:
ENABLE_XDEBUG=1
XDEBUG_HOST=host.docker.internal
XDEBUG_PORT=9003
Nastepnie należy zrestartować wszystkie kontenery (a dokładniej kontener php
, żeby ./entrypoint.sh
został uruchomiony ponownie).
Skonfiguruj IDE by łączyło się do istniejącego kontenera, a nie tworzyło nowy.
Jeśli korzystasz z PhpStorm, konieczne może być ustawienie zmiennej środowiskowej:
# from /bin/bash
export PHP_IDE_CONFIG="serverName=your_server_name"
REM from cmd.exe
set PHP_IDE_CONFIG="serverName=your_server_name"
# from powershell.exe
$env:PHP_IDE_CONFIG = 'serverName=your_server_name'
Nazwa your_server_name
powinna odpowiadać nazwie servera w sekcji "path mappings".
W projekcie korzystamy z yarn
oraz webpack
. Aby skompilować pliki źródłowe do postaci finalnej, należy wykonać
polecenie:
Wersja developerska
docker-compose exec php yarn run dev
lub
docker-compose exec php yarn run watch
Polecenie docker-compose exec php yarn run watch
powoduje stałe monitorowanie zmian w plikach źródłowych. Jakiekolwiek zmiany w tych plikach
spowodują wygenerowanie nowych plików wynikowych CSS oraz JS.
Wersja produkcyjna:
docker-compose exec php yarn run prod
Zmiany w szablonach .twig
są widoczne od razu po przeładowaniu, ale zmiany w plikach .vue
są
widoczne dopiero po przebudowaniu yarn run dev
.
Dla szybkiego developowania, warto stworzyć osobną aplikację Vue, zbudować w niej komponenty, i potem po prostu przekopiować do projektu coyote.
# Stwórz nowy folder poza projektem coyote/
cd ..
mkdir spike/
# Stwórz pustą aplikację vue
cd spike/
yarn init --yes --private
yarn add @vue/cli
yarn run vue create app # Select preset "Default Vue 2"
# Dodaj SCSS oraz uruchom aplikację
cd app
yarn add sass-loader sass
yarn serve
Możesz teraz po prostu edytować plik .vue
i pracować na błyskawicznej aplikacji. Po skończeniu, folder spike/
może być usunięty.
Aby uruchomić testy w laravel:
docker-compose exec php php vendor/bin/phpunit
Running tests causes a lot of failed tests, with CSRF token fail.
php
container:
php artisan config:clear
Niektóre widoki powodują błąd związany z ElasticSearch i brakującymi polami.
php artisan es:drop
A następnie stwórz indexy od nowa
php artisan es:create --force
php artisan es:index --force
curl -XPUT -H "Content-Type: application/json" http://localhost:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}'
Running containers listening on high ports fails.
If you're running Windows, it's possible that random dynamic ports for IANA are blocking docker containers.
To verify:
netsh int ipv4 show dynamicport tcp
If the starting port is low-ish (between 1000-2000), then it's possible that the dynamic ports are blocking the docker containers.
To change:
netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv6 set dynamic tcp start=49152 num=16384
Random unrelated tests start to fail.
Many Dusk tests aren't properly constructed to expect debug features like Debugbar.
To fix:
APP_DEBUG=false
Problem z uruchomieniem docker compose
na Windows:
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:8025 -> 0.0.0.0:0: listen tcp 0.0.0.0:8025: bind: Została podjęta próba uzyskania dostępu do gniazda w sposób zabroniony przez przypisane do niego uprawnienia dostępu.
Rozwiązanie:
net stop winnat
Brak połączenia z internetem z WSL:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
wsl
If the steps didn't work, repeat the steps, but also run netsh winsock reset
after ipconfig /flushdns
.
Różnice w środowiskach
Pamiętaj, że uruchomienie docker compose up
(bez przekazania -f
) domyślnie
skorzysta z plików docker-compose.yaml
oraz docker-compose.override.yaml
.
Na serwerze produkcyjnym niektóre zadanie wykonywane są w tle. Dodawane są one do kolejki oraz wykonywane przez proces działający w tle.
Domyślnie, na serwerze lokalnym zadania nie są dodawane do kolejki (w pliku .env
ustawienie QUEUE_DRIVER=sync
).
Jeżeli jednak chciałbyś przetestować działanie mechanizmu kolejek, ustaw wartość zmiennej środowiskowej QUEUE_DRIVER
na redis
.
Aby uruchomić mechanizm kolejek skorzystaj z następującego polecenia:
docker-compose exec php php artisan queue:listen --sleep=10