Merge pull request #2 from bitinflow/develop

Optimize image size
This commit is contained in:
René Preuß
2021-12-05 22:42:10 +01:00
committed by GitHub
4 changed files with 68 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
on: [push, pull_request]
on: [ push ]
name: Build
jobs:
build:

33
check-platform-reqs.sh Executable file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
if [ "$#" -eq 0 ]; then
VERSION_MATRIX=('bpkg.io/laravel:8.0-octane' 'bpkg.io/laravel:8.1-octane')
else
VERSION_MATRIX=("$@")
fi
EXTENSION_MATRIX=(
'bcmath' 'curl' 'date' 'imagick' 'exif' 'fileinfo' 'hash' 'PDO' 'sockets'
'json' 'mbstring' 'pdo_mysql' 'pdo_sqlite' 'sqlite3' 'zip' 'pcntl' 'redis'
'swoole' 'posix' 'gd' 'mongodb'
)
for version in "${VERSION_MATRIX[@]}"
do
for extension in "${EXTENSION_MATRIX[@]}"
do
command="$command if(!extension_loaded('$extension')) { echo 'ERROR: Extension $extension on $version is missing.' . PHP_EOL;}"
done
command="$command echo 'upload_max_filesize: ' . ini_get('upload_max_filesize') . PHP_EOL;"
command="$command echo 'post_max_size: ' . ini_get('post_max_size') . PHP_EOL;"
RESULT=$(docker run -it --rm "$version" php -r "$command")
echo "$RESULT"
if [[ $RESULT == *"ERROR"* ]]; then
echo "Checks failed, abort."
exit 1
fi
done

View File

@@ -4,17 +4,23 @@ WORKDIR /var/www/html
# STSTEM: Install required packages
RUN apk --no-cache upgrade && \
apk --no-cache add bash git sudo openssh libxml2-dev postgresql-dev oniguruma-dev autoconf gcc g++ make npm freetype-dev libjpeg-turbo-dev libpng-dev libzip-dev
# COMPOSER: install binary and prestissimo
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
# PHP: install extensions
RUN pecl channel-update pecl.php.net
RUN pecl install ssh2 swoole
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install mbstring xml pcntl gd zip sockets pdo pdo_pgsql pdo_mysql bcmath
RUN docker-php-ext-enable mbstring xml gd zip swoole pcntl sockets bcmath pdo pdo_pgsql pdo_mysql
apk --no-cache add bash git openssh npm gcc && \
apk --no-cache add libxml2-dev postgresql-dev oniguruma-dev freetype-dev libjpeg-turbo-dev libpng-dev libzip-dev imagemagick-dev && \
apk --no-cache add --virtual .build-deps autoconf g++ make && \
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer && \
# PHP: Install extensions
pecl channel-update pecl.php.net && \
pecl install swoole imagick mongodb redis && \
docker-php-ext-configure gd --with-freetype --with-jpeg && \
docker-php-ext-install mbstring xml exif pcntl gd zip sockets pdo pdo_pgsql pdo_mysql bcmath && \
docker-php-ext-enable mbstring xml gd zip swoole imagick mongodb redis exif pcntl sockets bcmath pdo pdo_pgsql pdo_mysql && \
# PHP: Configure ini
echo 'post_max_size = 200M' >> /usr/local/etc/php/conf.d/docker-php-overrides.ini && \
echo 'upload_max_filesize = 200M' >> /usr/local/etc/php/conf.d/docker-php-overrides.ini && \
# CONTAINER: Cleanup build dependencies
apk del .build-deps && \
docker-php-source delete
# CONTAINER: Expose port 8000 and set command
EXPOSE 8000
CMD ["php","artisan","octane:start", "--host=0.0.0.0"]

View File

@@ -4,17 +4,23 @@ WORKDIR /var/www/html
# STSTEM: Install required packages
RUN apk --no-cache upgrade && \
apk --no-cache add bash git sudo openssh libxml2-dev postgresql-dev oniguruma-dev autoconf gcc g++ make npm freetype-dev libjpeg-turbo-dev libpng-dev libzip-dev
# COMPOSER: install binary and prestissimo
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
# PHP: install extensions
RUN pecl channel-update pecl.php.net
RUN pecl install ssh2 swoole
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install mbstring xml pcntl gd zip sockets pdo pdo_pgsql pdo_mysql bcmath
RUN docker-php-ext-enable mbstring xml gd zip swoole pcntl sockets bcmath pdo pdo_pgsql pdo_mysql
apk --no-cache add bash git openssh npm gcc && \
apk --no-cache add libxml2-dev postgresql-dev oniguruma-dev freetype-dev libjpeg-turbo-dev libpng-dev libzip-dev imagemagick-dev && \
apk --no-cache add --virtual .build-deps autoconf g++ make && \
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer && \
# PHP: Install extensions
pecl channel-update pecl.php.net && \
pecl install swoole imagick mongodb redis && \
docker-php-ext-configure gd --with-freetype --with-jpeg && \
docker-php-ext-install mbstring xml exif pcntl gd zip sockets pdo pdo_pgsql pdo_mysql bcmath && \
docker-php-ext-enable mbstring xml gd zip swoole imagick mongodb redis exif pcntl sockets bcmath pdo pdo_pgsql pdo_mysql && \
# PHP: Configure ini
echo 'post_max_size = 200M' >> /usr/local/etc/php/conf.d/docker-php-overrides.ini && \
echo 'upload_max_filesize = 200M' >> /usr/local/etc/php/conf.d/docker-php-overrides.ini && \
# CONTAINER: Cleanup build dependencies
apk del .build-deps && \
docker-php-source delete
# CONTAINER: Expose port 8000 and set command
EXPOSE 8000
CMD ["php","artisan","octane:start", "--host=0.0.0.0"]