File size: 2,723 Bytes
db82a5e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fbcc9a7
 
db82a5e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9007054
 
db82a5e
 
6cfe636
 
 
 
49a2c95
db82a5e
 
 
 
 
 
 
 
 
 
9007054
37fad11
db82a5e
 
9007054
 
db82a5e
 
 
 
 
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
61
62
63
FROM alpine:3.19

# Install all dependencies
RUN apk add --no-cache \
    mariadb mariadb-client \
    nginx \
    php82 php82-fpm \
    php82-pdo php82-pdo_mysql php82-mysqli \
    php82-mbstring php82-curl php82-openssl php82-json \
    php82-tokenizer php82-xml php82-ctype php82-bcmath \
    php82-fileinfo php82-gd php82-zip php82-phar \
    php82-session php82-dom php82-simplexml php82-xmlwriter \
    php82-iconv php82-posix php82-pcntl \
    supervisor \
    curl unzip \
    && ln -sf /usr/bin/php82 /usr/bin/php \
    && sed -i 's/skip-networking/#skip-networking/' /etc/my.cnf.d/mariadb-server.cnf

# Download dnsmgr release
RUN curl -fSL -o /tmp/dnsmgr.zip https://github.com/netcccyun/dnsmgr/releases/download/2.18/dnsmgr_2.18.zip \
    && unzip -q /tmp/dnsmgr.zip -d /tmp/dnsmgr \
    && mkdir -p /app/www \
    && cp -r /tmp/dnsmgr/* /app/www/ \
    && cp -r /tmp/dnsmgr/.??* /app/www/ \
    && rm -rf /tmp/dnsmgr.zip /tmp/dnsmgr

# Configure nginx
COPY nginx.conf /etc/nginx/http.d/default.conf

# Configure php-fpm
RUN sed -i 's/;daemonize\s*=\s*yes/daemonize = no/' /etc/php82/php-fpm.conf \
    && sed -i 's/listen\s*=\s*127.0.0.1:9000/listen = \/run\/php\/php8.2-fpm.sock/' /etc/php82/php-fpm.d/www.conf \
    && sed -i 's/^user = nobody/user = nginx/' /etc/php82/php-fpm.d/www.conf \
    && sed -i 's/^group = nobody/group = nginx/' /etc/php82/php-fpm.d/www.conf \
    && sed -i 's/;listen.owner\s*=\s*nobody/listen.owner = nginx/' /etc/php82/php-fpm.d/www.conf \
    && sed -i 's/;listen.group\s*=\s*nobody/listen.group = nginx/' /etc/php82/php-fpm.d/www.conf \
    && echo "php_admin_value[error_log] = /proc/self/fd/2" >> /etc/php82/php-fpm.d/www.conf \
    && echo "php_admin_flag[log_errors] = on" >> /etc/php82/php-fpm.d/www.conf \
    && echo "php_admin_value[display_errors] = stdout" >> /etc/php82/php-fpm.d/www.conf \
    && echo "php_admin_value[error_reporting] = E_ALL" >> /etc/php82/php-fpm.d/www.conf \
    && mkdir -p /run/php

# Configure supervisord
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

# Copy entrypoint script
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

# Create required directories
RUN mkdir -p /run/nginx /run/mysqld /var/lib/mysql /var/log/mariadb /var/log/supervisor \
    && mkdir -p /app/www/runtime/temp /app/www/runtime/cache /app/www/runtime/session /app/www/runtime/log \
    && mkdir -p /app/www/public/storage \
    && chown -R mysql:mysql /var/lib/mysql /var/log/mariadb /run/mysqld \
    && chown -R nginx:nginx /app/www \
    && chown -R nginx:nginx /run/php \
    && chmod -R 755 /app/www/runtime

EXPOSE 8081

ENTRYPOINT ["/entrypoint.sh"]
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]