Dev Docker: Fixed missing gd jpeg handling, forced migrations

Migrations run without force could fail startup in certain environment
conditions (when testing production env).
Also updated paths permission handling to update more needed locations.
This commit is contained in:
Dan Brown 2024-12-01 16:02:21 +00:00
parent fbeb2e23d4
commit 227c5e155b
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
3 changed files with 8 additions and 5 deletions

View File

@ -6,15 +6,18 @@ RUN apt-get update && \
git \
zip \
unzip \
libpng-dev \
libfreetype-dev \
libjpeg62-turbo-dev \
libldap2-dev \
libpng-dev \
libzip-dev \
wait-for-it && \
rm -rf /var/lib/apt/lists/*
# Install PHP extensions
RUN docker-php-ext-configure ldap --with-libdir="lib/$(gcc -dumpmachine)" && \
docker-php-ext-install pdo_mysql gd ldap zip && \
docker-php-ext-configure gd --with-freetype --with-jpeg && \
docker-php-ext-install -j$(nproc) pdo_mysql gd ldap zip && \
pecl install xdebug && \
docker-php-ext-enable xdebug

View File

@ -9,7 +9,7 @@ if [[ -n "$1" ]]; then
else
composer install
wait-for-it db:3306 -t 45
php artisan migrate --database=mysql
chown -R www-data:www-data storage
php artisan migrate --database=mysql --force
chown -R www-data storage public/uploads bootstrap/cache
exec apache2-foreground
fi

View File

@ -82,7 +82,7 @@ If all the conditions are met, you can proceed with the following steps:
1. **Copy `.env.example` to `.env`**, change `APP_KEY` to a random 32 char string and set `APP_ENV` to `local`.
2. Make sure **port 8080 is unused** *or else* change `DEV_PORT` to a free port on your host.
3. **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.
3. **Run `chgrp -R docker storage`**. The development container will chown the `storage`, `public/uploads` and `bootstrap/cache` directories 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.
4. **Run `docker-compose up`** and wait until the image is built and all database migrations have been done.
5. You can now login with `admin@admin.com` and `password` as password on `localhost:8080` (or another port if specified).