diff --git a/dev/docker/Dockerfile b/dev/docker/Dockerfile index 5830a5e80..82ea2b6f6 100644 --- a/dev/docker/Dockerfile +++ b/dev/docker/Dockerfile @@ -4,8 +4,9 @@ ENV APACHE_DOCUMENT_ROOT /app/public WORKDIR /app RUN apt-get update -y \ - && apt-get install -y libtidy-dev libpng-dev libxml++2.6-dev wait-for-it \ - && docker-php-ext-install pdo pdo_mysql tidy dom xml mbstring gd \ + && apt-get install -y libtidy-dev libpng-dev libldap2-dev libxml++2.6-dev wait-for-it \ + && docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu \ + && docker-php-ext-install pdo pdo_mysql tidy dom xml mbstring gd ldap \ && a2enmod rewrite \ && sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf \ && sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf \ diff --git a/dev/docker-compose.yml b/docker-compose.yml similarity index 90% rename from dev/docker-compose.yml rename to docker-compose.yml index 44560ad9d..47f38184e 100644 --- a/dev/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,5 @@ # This is a Docker Compose configuration -# intended for development purposes +# intended for development purposes only version: '3' @@ -19,7 +19,7 @@ services: - db:/var/lib/mysql app: build: - context: .. + context: . dockerfile: ./dev/docker/Dockerfile environment: DB_CONNECTION: mysql @@ -31,11 +31,11 @@ services: ports: - ${DEV_PORT:-8080}:80 volumes: - - ../:/app + - ./:/app entrypoint: /app/dev/docker/entrypoint.app.sh node: image: node:alpine working_dir: /app volumes: - - ../:/app + - ./:/app entrypoint: /app/dev/docker/entrypoint.node.sh diff --git a/readme.md b/readme.md index 0e25f9791..6f0956eb5 100644 --- a/readme.md +++ b/readme.md @@ -79,7 +79,7 @@ Once done you can run `php vendor/bin/phpunit` in the application root directory PHP code within BookStack is generally to [PSR-2](http://www.php-fig.org/psr/psr-2/) standards. From the BookStack root folder you can run `./vendor/bin/phpcs` to check code is formatted correctly and `./vendor/bin/phpcbf` to auto-fix non-PSR-2 code. -### Getting started with Development using Docker +### 🐋 Development using Docker This repository ships with a Docker Compose configuration intended for development purposes. It'll build a PHP image with all needed extensions installed and start up a MySQL server and a Node image watching the UI assets. @@ -87,17 +87,21 @@ To get started, make sure you meet the following requirements: - Docker and Docker Compose are installed - Your user is part of the `docker` group -- Composer is installed If all the conditions are met, you can proceed with the following steps: -1. Install Composer dependencies with **`docker-compose run app composer install`** (first time can take a while because the image has to be built) -2. **Copy `.env.example` to `.env`** and change `APP_KEY` to a random 32 char string -3. Make sure **port 8080 is unused** *or else* change `DEV_PORT` to a free port on your host -4. **Run `chgrp -R docker storage`**. The development container will chown the `storage` directory to the `www-data` user inside the container so BookStack can write to it. You need to change the group to your host's `docker` group here to not lose access to the `storage` directory -5. **Run `docker-compose up`** and wait until all database migrations have been done -6. You can now login with `admin@admin.com` and `password` as password on `localhost:8080` (or another port if specified) +1. Install PHP/Composer dependencies with **`docker-compose run app composer install`** (first time can take a while because the image has to be built). +2. **Copy `.env.example` to `.env`** and change `APP_KEY` to a random 32 char string. +3. Make sure **port 8080 is unused** *or else* change `DEV_PORT` to a free port on your host. +4. **Run `chgrp -R docker storage`**. The development container will chown the `storage` directory to the `www-data` user inside the container so BookStack can write to it. You need to change the group to your host's `docker` group here to not lose access to the `storage` directory. +5. **Run `docker-compose up`** and wait until all database migrations have been done. +6. You can now login with `admin@admin.com` and `password` as password on `localhost:8080` (or another port if specified). +If needed, You'll be able to run any artisan commands via docker-compose like so: + + ```shell script +docker-compose run app php artisan list +``` ## 🌎 Translations