I've did it, thanks for your answers! This is the complete docker-compose.yml file. I've used /docker-entrypoint-initdb.d/ directory where I placed the database to be imported.
services:
app:
build:
context: .
dockerfile: Dockerfile
image: my-laravel-app
container_name: my-laravel-app
restart: unless-stopped
working_dir: /var/www
volumes:
- ./:/var/www
- ./.env:/var/www/.env
environment:
- APP_ENV=local
networks:
- app-network
nginx:
image: nginx:alpine
container_name: my-nginx
ports:
- "8000:80"
- "${VITE_PORT:-5173}:${VITE_PORT:-5173}"
volumes:
- ./:/var/www
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./docker/php/local.ini:/usr/local/etc/php/conf.d/local.ini
depends_on:
- app
networks:
- app-network
node:
platform: linux/arm64/v8
build:
context: .
dockerfile: Dockerfile.node
image: my-laravel-node
container_name: my-laravel-node
ports:
- "3000:3000"
restart: unless-stopped
working_dir: /var/www
volumes:
- ./:/var/www
- /var/www/node_modules
networks:
- app-network
db:
platform: linux/x86_64
image: mysql:8.0
container_name: my-mysql
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
volumes:
- dbdata:/var/lib/mysql
- ./data.sql:/docker-entrypoint-initdb.d/data-dump.sql
networks:
- app-network
ports:
- "3306:3306"
networks:
app-network:
driver: bridge
volumes:
dbdata:
driver: local