version: '3.6' services: server: image: caddy:alpine restart: always environment: - APP_URL=https://localhost volumes: # Vhost configuration - ./config/caddy/Caddyfile:/etc/caddy/Caddyfile # Configure your mounted directories, make sure the folder 'public' and 'storage' # exist, before mounting them - public:/var/www/app/public - storage:/var/www/app/storage # you may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data! # - ./docker/app/public:/var/www/app/public:rw,delegated # - ./docker/app/storage:/var/www/app/storage:rw,delegated depends_on: - app # Run webserver nginx on port 80 # Feel free to modify depending what port is already occupied ports: - "80:80" - "443:443" networks: - invoiceninja app: image: invoiceninja/invoiceninja:alpine restart: always environment: - APP_URL=https://localhost - APP_KEY= - DB_HOST=db volumes: # Configure your mounted directories, make sure the folder 'public' and 'storage' # exist, before mounting them - public:/var/www/app/public - storage:/var/www/app/storage # you may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data! # - ./docker/app/public:/var/www/app/public:rw,delegated # - ./docker/app/storage:/var/www/app/storage:rw,delegated depends_on: - db networks: - invoiceninja db: image: mysql:5 restart: always environment: - MYSQL_ROOT_PASSWORD=ninjaAdm1nPassword - MYSQL_USER=ninja - MYSQL_PASSWORD=ninja - MYSQL_DATABASE=ninja volumes: - mysql-data:/var/lib/mysql:rw # you may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data! # - ./docker/mysql/data:/var/lib/mysql:rw,delegated networks: - invoiceninja # cron: # image: invoiceninja/invoiceninja # volumes: # - storage:/var/www/app/storage # - logo:/var/www/app/public/logo # - public:/var/www/app/public # entrypoint: | # bash -c 'bash -s <