WebArena-ShopSmart / docker-compose.yml
Jack
Clean import with LFS-tracked assets
6a30288
services:
db:
image: mysql:8.0
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: onestopshop
MYSQL_USER: app
MYSQL_PASSWORD: app
ports:
- "3307:3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-proot"]
interval: 5s
timeout: 5s
retries: 20
volumes:
- db_data:/var/lib/mysql
- ./db/init:/docker-entrypoint-initdb.d:ro
web:
build:
context: .
dockerfile: Dockerfile
depends_on:
db:
condition: service_healthy
environment:
NODE_ENV: development
DATABASE_URL: mysql://app:app@db:3306/onestopshop
NEXT_PUBLIC_APP_URL: http://localhost:3000
ports:
- "3000:3000"
command: >
sh -lc "until nc -z db 3306; do
echo 'Waiting for MySQL...';
sleep 2;
done;
npm run dev -- --hostname 0.0.0.0"
volumes:
- .:/app
- node_modules:/app/node_modules
- next_cache:/app/.next
db-reset:
image: mysql:8.0
profiles: ["tools"]
depends_on:
db:
condition: service_healthy
volumes:
- ./db/init:/seed:ro
command:
- sh
- -lc
- mysql -h db -u root -proot onestopshop < /seed/00-bootstrap.sql
volumes:
db_data:
node_modules:
next_cache: