Merge branch 'master' into grav-updates

This commit is contained in:
Andy Miller 2020-01-22 12:33:08 -07:00 committed by GitHub
commit 9f14b58d7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 23 deletions

View File

@ -1,20 +1,24 @@
FROM php:7.2-apache FROM php:7.3-apache
LABEL maintainer="Andy Miller <rhuk@getgrav.org> (@rhukster)" LABEL maintainer="Andy Miller <rhuk@getgrav.org> (@rhukster)"
# Enable Apache Rewrite + Expires Module # Enable Apache Rewrite + Expires Module
RUN a2enmod rewrite expires RUN a2enmod rewrite expires
# Install dependencies # Install dependencies
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y --no-install-recommends \
unzip \ unzip \
libfreetype6-dev \ libfreetype6-dev \
libjpeg62-turbo-dev \ libjpeg62-turbo-dev \
libpng-dev \ libpng-dev \
libyaml-dev \ libyaml-dev \
libzip-dev \
cron \
vim \
&& docker-php-ext-install opcache \ && docker-php-ext-install opcache \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \ && docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-install zip && docker-php-ext-install zip
&& rm -rf /var/lib/apt/lists/*
# set recommended PHP.ini settings # set recommended PHP.ini settings
# see https://secure.php.net/manual/en/opcache.installation.php # see https://secure.php.net/manual/en/opcache.installation.php
@ -29,9 +33,6 @@ RUN { \
echo 'post_max_size=128M'; \ echo 'post_max_size=128M'; \
} > /usr/local/etc/php/conf.d/php-recommended.ini } > /usr/local/etc/php/conf.d/php-recommended.ini
# provide container inside image for data persistance
# VOLUME /var/www/html
RUN pecl install apcu \ RUN pecl install apcu \
&& pecl install yaml \ && pecl install yaml \
&& docker-php-ext-enable apcu yaml && docker-php-ext-enable apcu yaml
@ -44,6 +45,7 @@ USER www-data
ENV GRAV_VERSION 1.6.19 ENV GRAV_VERSION 1.6.19
ENV GRAV_SHA1 231e6789e9575adccd6044aa0d0c72b8c2603a96 ENV GRAV_SHA1 231e6789e9575adccd6044aa0d0c72b8c2603a96
# Install grav # Install grav
WORKDIR /var/www WORKDIR /var/www
RUN curl -o grav-admin.zip -SL https://getgrav.org/download/core/grav-admin/${GRAV_VERSION} && \ RUN curl -o grav-admin.zip -SL https://getgrav.org/download/core/grav-admin/${GRAV_VERSION} && \
@ -52,11 +54,18 @@ RUN curl -o grav-admin.zip -SL https://getgrav.org/download/core/grav-admin/${GR
mv -T /var/www/grav-admin /var/www/html && \ mv -T /var/www/grav-admin /var/www/html && \
rm grav-admin.zip rm grav-admin.zip
# Create cron job for Grav maintenance scripts
RUN (crontab -l; echo "* * * * * cd /var/www/html;/usr/local/bin/php bin/grav scheduler 1>> /dev/null 2>&1") | crontab -
# Return to root user # Return to root user
USER root USER root
# Copy init scripts # Copy init scripts
# COPY docker-entrypoint.sh /entrypoint.sh # COPY docker-entrypoint.sh /entrypoint.sh
# provide container inside image for data persistance
VOLUME ["/var/www/html"]
# ENTRYPOINT ["/entrypoint.sh"] # ENTRYPOINT ["/entrypoint.sh"]
# CMD ["apache2-foreground"] # CMD ["apache2-foreground"]
CMD ["sh", "-c", "cron && apache2-foreground"]

View File

@ -2,13 +2,15 @@
This currently is pretty minimal and uses: This currently is pretty minimal and uses:
* apache-2.4.8 * apache-2.4.38
* GD library * GD library
* Unzip library * Unzip library
* php7.2 * php7.3
* php7.2-opcache * php7.3-opcache
* php7.2-acpu * php7.3-acpu
* php7.2-yaml * php7.3-yaml
* cron
* vim editor
## Building the image from Dockerfile ## Building the image from Dockerfile
@ -16,7 +18,7 @@ This currently is pretty minimal and uses:
docker build -t grav:latest . docker build -t grav:latest .
``` ```
## Running Grav Image with Latest Grav + Admin (not persistent): ## Running Grav Image with Latest Grav + Admin:
``` ```
docker run -p 8000:80 grav:latest docker run -p 8000:80 grav:latest
@ -24,18 +26,8 @@ docker run -p 8000:80 grav:latest
Point browser to `http://localhost:8000` and create user account... Point browser to `http://localhost:8000` and create user account...
## Running local Grav installation ## Running Grav Image with Latest Grav + Admin with a named volume (can be used in production)
This assumes you have already downloaded a Grav package into a local folder. This is the best way to run Grav if you want to have your changes persisted between restarts of the docker container.
``` ```
docker run -v /local/grav/install:/var/www/html:cached -p 8000:80/tcp grav:latest docker run -d -p 8000:80 --name grav --restart always -v grav_data:/var/www/html grav:1.0
``` ```
To run in the current directory you can use:
```
docker run -v `pwd`:/var/www/html:cached -p 8000:80/tcp grav:latest
```
Point browser to `http://localhost:8000` to access your Grav site