-
Notifications
You must be signed in to change notification settings - Fork 18
/
Dockerfile.gravadmin
60 lines (50 loc) · 1.48 KB
/
Dockerfile.gravadmin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
FROM bitnami/minideb:bookworm
ARG GRAV_VERSION
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN \
## Docker User
useradd -u 911 -U -d /var/www -s /bin/false xyz && \
usermod -G users xyz && \
## Install Pre-reqs
install_packages \
apt-transport-https \
ca-certificates \
curl \
lsb-release \
nano \
nginx \
unzip \
cron \
wget && \
## Install PHP APT Repository
curl -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg && \
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list && \
## Install PHP 8.2
install_packages \
php8.2 \
php8.2-fpm \
php8.2-gd \
php8.2-curl \
php8.2-zip \
php8.2-mbstring \
php8.2-xml \
php8.2-intl && \
## Download GRAV
mkdir -p \
/grav && \
curl -o /grav/grav.zip -L https://github.com/getgrav/grav/releases/download/"${GRAV_VERSION}"/grav-admin-v"${GRAV_VERSION}".zip && \
## Nginx Logs
ln -sf /dev/stdout /var/log/nginx/access.log && \
ln -sf /dev/stderr /var/log/nginx/error.log
USER xyz
# Create cron job for Grav maintenance scripts
RUN \
(crontab -l; echo "* * * * * cd /var/www/grav;/usr/bin/php bin/grav scheduler 1>> /dev/null 2>&1") | crontab -
USER root
# Create cron job for Grav maintenance scripts
RUN \
(crontab -l; echo "* * * * * cd /var/www/grav;/usr/bin/php bin/grav scheduler 1>> /dev/null 2>&1") | crontab -
EXPOSE 80 443
COPY root/ /
WORKDIR /var/www/grav
CMD ["/init-admin"]