summaryrefslogtreecommitdiff
path: root/docker-compose.yml
blob: f4c3a64c66459ecd531efdfc7b1729c89308e3b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# 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