name: library services: db: image: mariadb:10.11 container_name: library-db restart: unless-stopped environment: MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} MARIADB_DATABASE: koha_library MARIADB_USER: koha_library MARIADB_PASSWORD: ${DB_PASSWORD} command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci", "--innodb-buffer-pool-size=128M"] volumes: - db-data:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s timeout: 5s retries: 20 koha: build: context: ./koha args: KOHA_SUITE: ${KOHA_SUITE:-stable} image: library-koha:local container_name: library-koha restart: unless-stopped depends_on: db: condition: service_healthy environment: TZ: ${TZ:-UTC} KOHA_DB_HOST: db KOHA_DB_PASS: ${DB_PASSWORD} KOHA_ADMIN_USER: ${ADMIN_USER:-admin} KOHA_ADMIN_PASS: ${ADMIN_PASSWORD} KOHA_LIBRARY_NAME: ${LIBRARY_NAME:-My Library} # Koha's Apache uses mpm_itk, which switches users per request. cap_add: - SETUID - SETGID ports: - "${OPAC_PORT:-8080}:80" - "${STAFF_PORT:-8081}:8081" volumes: - koha-data:/var/lib/koha volumes: db-data: koha-data: