| FROM alpine:3.19 |
|
|
| |
| 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 |
|
|
| |
| 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 |
|
|
| |
| COPY nginx.conf /etc/nginx/http.d/default.conf |
|
|
| |
| 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 |
|
|
| |
| COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf |
|
|
| |
| COPY entrypoint.sh /entrypoint.sh |
| RUN chmod +x /entrypoint.sh |
|
|
| |
| 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"] |
|
|