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
.
Running yarn watch
causes SPA view not to render at all.
If in developer console there are errors concerning loading .js
files, then the most likely problem an outdated
manifest.json
file. Webpack normally rebuilds it live when working with yarn watch
, but that happens
as the very last step. If there is any error during building (e.g. incorrect unix permissions) then the building
doesn't proceed, the file manifest.json
is not updated, view is attempted to be shown with outdated manifest.json
which fails.
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
W przypadku znalezienia błędów prosimy o zgłaszanie ich bezpośrednio na e-mail: support@4programmers.net
Zachęcamy do aktywnego udziału w rozwoju projektu. Zajrzyj na zakładkę Issues i zobacz jakie zadanie możesz zrealizować. Realizujemy tylko te zadania, które są zaakceptowane i przypisane do wersji 2.0.