Utwórz nowy projekt
composer create-project cakephp/app myproject
Utwórz plik docker-compose.yaml
version: '3'
services:
mysql8:
image: mysql:8
restart: always
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: my_app
MYSQL_USER: my_app
MYSQL_PASSWORD: secret
volumes:
- ./:/application
ports:
- '9306:3306'
cakephp:
image: webdevops/php-apache:8.0
container_name: cakephp
working_dir: /application/webroot
volumes:
- ./:/application
environment:
- WEB_DOCUMENT_ROOT=/application/webroot
- DATABASE_URL=mysql://my_app:secret@mysql/my_app
ports:
- "8099:80"
Uruchom kontenery
docker-compose up
Utworzysz 2 kontenery o nazwach mysql i cakephp – sprawdź konfigurację docker-compose, aby zobaczyć domyślną bazę danych i użytkowników utworzonych w kontenerze mysql oraz te same parametry środowiska przekazane do kontenera cakephp przez DATABASE_URL, aby umożliwić kontenerowi cakephp połączenie z bazą mysql.
UWAGA: dostępne porty to 9306 dla mysql i 8099 dla serwera WWW. Możesz je wyświetlić za pomocą docker-compose ps.
Dostęp do bazy danych
Aby uzyskać dostęp do bazy danych z linii poleceń wykonaj:
mysql --port 9306 -umy_app -psecret my_app
To restore a database dump for example, you can use the command:
curl -L https://domainname.com/my_app.sql | mysql --port 9306 -umy_app -psecret my_app
Możesz także skonfigurować dowolne narzędzie bazy danych, aby uzyskać dostęp do bazy danych w: localhost:9306
CakePHP Shell
Aby uzyskać dostęp do środowiska i powłoki cakephp, możesz użyć polecenia:
docker exec -it --user application cakephp bash
lub skorzystać z Docker Desktop i przycisku uruchamiającego linię poleceń dla kontenera cakephp.
Przejdziesz do folderu webroot, więc aby uruchomić bin/cake, musisz:
cd ..
bin/cake