DockerfileDev 2.89 KB
Newer Older
Dominik Hebeler's avatar
Dominik Hebeler committed
1
FROM debian:10
Dominik Hebeler's avatar
Dominik Hebeler committed
2

Dominik Hebeler's avatar
Dominik Hebeler committed
3
4
5
# Install System Components
RUN apt update \
    && apt install -y \
Dominik Hebeler's avatar
Dominik Hebeler committed
6
7
    nginx \
    tzdata \
Dominik Hebeler's avatar
Dominik Hebeler committed
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
    cron \
    lsb-release \
    apt-transport-https \
    curl \
    zip

RUN 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 Components
RUN apt update \
    && apt install -y \
    php7.4 \
    php7.4-xml \
    php7.4-fpm \
    php7.4-common \
    php7.4-curl \
    php7.4-mbstring \
    php7.4-sqlite3 \
    php7.4-mysql \
    php7.4-sqlite \
    php7.4-zip \
    php7.4-redis \
    php7.4-gd \
    php7.4-json \
33
    php7.4-xdebug
Dominik Hebeler's avatar
Dominik Hebeler committed
34
35
36

WORKDIR /html

Dominik Hebeler's avatar
Dominik Hebeler committed
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
RUN mkdir -p /run/php && \
    sed -i 's/error_log = \/var\/log\/php7.4-fpm.log/error_log = \/dev\/stderr/g' /etc/php/7.4/fpm/php-fpm.conf && \
    sed -i 's/;daemonize = yes/daemonize = no/g' /etc/php/7.4/fpm/php-fpm.conf && \
    sed -i 's/listen = \/run\/php\/php7.4-fpm.sock/listen = 9000/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/;request_terminate_timeout = 0/request_terminate_timeout = 30/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/;request_terminate_timeout_track_finished = no/request_terminate_timeout_track_finished = yes/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/;decorate_workers_output = no/decorate_workers_output = no/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/;catch_workers_output = yes/catch_workers_output = yes/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/pm.max_children = 5/pm.max_children = 1024/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/pm.start_servers = 2/pm.start_servers = 50/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 50/g' /etc/php/7.4/fpm/pool.d/www.conf && \
    sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/7.4/fpm/php.ini && \
    sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 30M/g' /etc/php/7.4/fpm/php.ini && \
    sed -i 's/post_max_size = 8M/post_max_size = 30M/g' /etc/php/7.4/fpm/php.ini && \
52
53
54
    echo "xdebug.mode = debug" >> /etc/php/7.4/fpm/conf.d/20-xdebug.ini && \
    echo "xdebug.start_with_request = yes" >> /etc/php/7.4/fpm/conf.d/20-xdebug.ini && \
    echo "xdebug.discover_client_host = true" >> /etc/php/7.4/fpm/conf.d/20-xdebug.ini && \
Dominik Hebeler's avatar
Dominik Hebeler committed
55
    echo "xdebug.idekey=VSCODE" >> /etc/php/7.4/fpm/conf.d/20-xdebug.ini && \
Dominik Hebeler's avatar
Dominik Hebeler committed
56
57
58
59
60
61
62
    cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \
    echo "Europe/Berlin" > /etc/timezone && \
    (crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab -

WORKDIR /html
EXPOSE 80

Dominik Hebeler's avatar
Dominik Hebeler committed
63
CMD chown -R root:www-data storage/logs/metager bootstrap/cache && \
Dominik Hebeler's avatar
Dominik Hebeler committed
64
    chmod -R g+w storage/logs/metager bootstrap/cache && \
Dominik Hebeler's avatar
Dominik Hebeler committed
65
66
    cron -L /dev/stdout && \
    php-fpm7.4