# This is a Docker Compose configuration # intended for development purposes only volumes: db: {} services: db: image: mysql:8.4 environment: MYSQL_DATABASE: bookstack-dev MYSQL_USER: bookstack-test MYSQL_PASSWORD: bookstack-test MYSQL_RANDOM_ROOT_PASSWORD: 'true' volumes: - ./dev/docker/init.db:/docker-entrypoint-initdb.d - db:/var/lib/mysql app: build: context: . dockerfile: ./dev/docker/Dockerfile environment: APP_URL: http://localhost:${DEV_PORT:-8080} DB_CONNECTION: mysql DB_HOST: db DB_PORT: 3306 DB_DATABASE: bookstack-dev DB_USERNAME: bookstack-test DB_PASSWORD: bookstack-test TEST_DATABASE_URL: mysql://bookstack-test:bookstack-test@db/bookstack-test MAIL_DRIVER: smtp MAIL_HOST: mailhog MAIL_PORT: 1025 ports: - ${DEV_PORT:-8080}:80 volumes: - ./:/app - ./dev/docker/php/conf.d/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini entrypoint: /app/dev/docker/entrypoint.app.sh extra_hosts: - "host.docker.internal:host-gateway" node: image: node:22-alpine working_dir: /app user: node volumes: - ./:/app entrypoint: /app/dev/docker/entrypoint.node.sh mailhog: image: mailhog/mailhog ports: - ${DEV_MAIL_PORT:-8025}:8025