forked from alexjustesen/speedtest-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
60 lines (46 loc) · 1.87 KB
/
Dockerfile
File metadata and controls
60 lines (46 loc) · 1.87 KB
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
# syntax = docker/dockerfile:latest
FROM serversideup/php:8.1-fpm-nginx AS build
WORKDIR /var/www/html
# Install app dependencies
COPY --link --chown=webuser:webgroup composer.json composer.lock /var/www/html
RUN composer install --no-dev --no-interaction --no-autoloader --no-scripts --no-cache
# Copy app
COPY --link --chown=webuser:webgroup . /var/www/html
# Install app dependencies
RUN <<EOF
set -xe
composer dump-autoload --optimize --no-dev --no-interaction --no-cache
mkdir -p storage/logs
php artisan optimize:clear
EOF
FROM serversideup/php:8.1-fpm-nginx AS app
# Add /config to allowed directory tree and Enable mixed ssl mode so port 80 or 443 can be used
ENV PHP_OPEN_BASEDIR=$WEBUSER_HOME:/config/:/dev/stdout:/tmp \
SSL_MODE="mixed"
RUN --mount=type=cache,id=aptcache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=libcache,target=/var/lib/apt,sharing=locked \
<<EOF
set -x
rm -fv /etc/apt/apt.conf.d/docker-clean
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
# Install Speedtest cli & additional packages
apt-get update
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | bash
apt-get install -y --no-install-recommends \
speedtest \
php8.1-pgsql \
cron
# Install Cron file
echo "MAILTO=\"\"\n* * * * * webuser /usr/bin/php /var/www/html/artisan schedule:run" > /etc/cron.d/laravel
# Clean up
apt-get clean
rm -rf /tmp/* \
/var/tmp/* \
/usr/share/doc/*
EOF
# Copy package configs
COPY --link --chmod=755 docker/deploy/etc/s6-overlay/ /etc/s6-overlay/
COPY --link --from=build --chown=webuser:webgroup /var/www/html /var/www/html
VOLUME /config
HEALTHCHECK --timeout=5s --interval=10s --start-period=120s \
CMD curl -fSs http://localhost/ping || exit 1