| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.ref.name=ubuntu |
| LABEL org.opencontainers.image.version=22.04 |
| ADD file:3fcf00866c55150f1ea0a5ef7b8473c39275c1fdbf6aba0acd84cacb83d0c564 in / |
| CMD ["/bin/bash"] |
| LABEL maintainer=badmf@mifi.dev |
| ENV DEBIAN_FRONTEND=noninteractive |
| ENV PHP_VERSION=8.1 |
| ENV Z_PUSH_VERSION=2.7.0 |
| ENV TZ=America/New_York |
| ENV IMAP_SERVER=localhost |
| ENV IMAP_PORT=143 |
| ENV SMTP_SERVER=localhost |
| ENV SMTP_PORT=587 |
| ENV LOGLEVEL=LOGLEVEL_ERROR |
| RUN /bin/sh -c set -x && apt-get update && apt-get -y upgrade && apt-get install --fix-broken -yq --no-install-recommends apt-utils curl git gnupg2 iproute2 nano python3 python3-pip python-setuptools python3-wheel software-properties-common wget && curl -o /usr/share/keyrings/nginx_signing.key http://nginx.org/keys/nginx_signing.key && echo "deb [signed-by=/usr/share/keyrings/nginx_signing.key] http://nginx.org/packages/mainline/ubuntu/ jammy nginx" > /etc/apt/sources.list.d/nginx.list && apt-get update && apt-get install --fix-broken -yq nginx php php-cli php-soap php-mbstring php-imap php-curl libawl-php php-xml php-ldap php-fpm && wget -O z-push.tar.gz https://github.com/Z-Hub/Z-Push/archive/refs/tags/${Z_PUSH_VERSION}.tar.gz && tar xzvf z-push.tar.gz && rm -R /var/www/html && mkdir /etc/z-push && mv Z-Push-${Z_PUSH_VERSION}/src/config.php /etc/z-push/z-push.conf.php && mv Z-Push-${Z_PUSH_VERSION}/src/backend/imap/config.php /etc/z-push/imap.conf.php && mv Z-Push-${Z_PUSH_VERSION}/src/autodiscover/config.php /etc/z-push/autodiscover.conf.php && mv Z-Push-${Z_PUSH_VERSION}/src /var/www/html && ln -s /etc/z-push/autodiscover.conf.php /var/www/html/autodiscover/config.php && ln -s /etc/z-push/imap.conf.php /var/www/html/backend/imap/config.php && ln -s /etc/z-push/z-push.conf.php /var/www/html/config.php && rm -R Z-Push-${Z_PUSH_VERSION} && rm z-push.tar.gz && pip install --no-cache-dir supervisor && pip install --no-cache-dir git+https://github.com/coderanger/supervisor-stdout && printf "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d && apt-get autoremove --purge -y software-properties-common gnupg2 && apt-get -y clean && rm -rf /var/lib/apt/lists/* /var/tmp/* && sed -i -e "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" -e "s/memory_limit\s*=\s*.*/memory_limit = 512M/g" -e "s/upload_max_filesize\s*=\s*2M/upload_max_filesize = 50M/g" -e "s/post_max_size\s*=\s*8M/post_max_size = 100M/g" -e "s/max_execution_time = 30/max_execution_time = 180/g" -e "s/max_input_time = 60/max_input_time = 180/g" -e "s/variables_order = \"GPCS\"/variables_order = \"EGPCS\"/g" -e "s/;opcache.enable=1/opcache.enable=1/" -e "s/;opcache.memory_consumption=128/opcache.memory_consumption=512/g" -e "s/;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=64/g" -e "s/;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=30000/g" -e "s/;opcache.revalidate_freq=2/opcache.revalidate_freq=0/g" /etc/php/${PHP_VERSION}/fpm/php.ini && sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php/${PHP_VERSION}/fpm/php-fpm.conf && sed -i -e "s/;catch_workers_output\s*=\s*yes/catch_workers_output = yes/g" -e "s/pm.max_children = 5/pm.max_children = 4/g" -e "s/pm.start_servers = 2/pm.start_servers = 3/g" -e "s/pm.min_spare_servers = 1/pm.min_spare_servers = 2/g" -e "s/pm.max_spare_servers = 3/pm.max_spare_servers = 4/g" -e "s/;pm.max_requests = 500/pm.max_requests = 200/g" -e "s/^;clear_env = no$/clear_env = no/" /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf && sed -i -e "s|define('TIMEZONE', '')|define('TIMEZONE', getenv('TZ'))|" -e "s/define('USE_FULLEMAIL_FOR_LOGIN', false)/define('USE_FULLEMAIL_FOR_LOGIN', true)/" -e "s/define('LOGLEVEL', LOGLEVEL_INFO)/define('LOGLEVEL', getenv('LOGLEVEL'))/" -e "s/define('BACKEND_PROVIDER', '')/define('BACKEND_PROVIDER', 'BackendIMAP')/" /etc/z-push/autodiscover.conf.php && sed -i -e "s|define('TIMEZONE', '')|define('TIMEZONE', getenv('TZ'))|" -e "s/define('BACKEND_PROVIDER', '')/define('BACKEND_PROVIDER', 'BackendIMAP')/" -e "s/define('LOGLEVEL', LOGLEVEL_INFO)/define('LOGLEVEL', getenv('LOGLEVEL'))/" /etc/z-push/z-push.conf.php && sed -i -e "s|define('IMAP_SERVER', 'localhost')|define('IMAP_SERVER', getenv('IMAP_SERVER'))|" -e "s/define('IMAP_PORT', 143)/define('IMAP_PORT', getenv('IMAP_PORT'))/" -e "s|define('IMAP_OPTIONS', '/notls/norsh')|define('IMAP_OPTIONS', '/ssl')|" -e "s/define('IMAP_SMTP_METHOD', 'mail')/define('IMAP_SMTP_METHOD', 'smtp')/" -e "s|$imap_smtp_params = array()|$imap_smtp_params = array('host' => getenv('SMTP_SERVER'), 'port' => getenv('SMTP_PORT'), 'auth' => true, 'username' => 'imap_username', 'password' => 'imap_password')|" -e "s/define('IMAP_FOLDER_CONFIGURED', false)/define('IMAP_FOLDER_CONFIGURED', true)/" /etc/z-push/imap.conf.php # buildkit |
| COPY conf/nginx /etc/nginx # buildkit |
| COPY conf/supervisor/supervisord.conf /etc/supervisord.conf # buildkit |
| RUN /bin/sh -c sed -i -e "s|{{PHP_VERSION}}|${PHP_VERSION}|g" /etc/supervisord.conf && sed -i -e "s|{{PHP_VERSION}}|${PHP_VERSION}|g" /etc/nginx/conf.d/default.conf # buildkit |
| COPY start.sh /start.sh # buildkit |
| RUN /bin/sh -c chmod 755 /start.sh # buildkit |
| RUN /bin/sh -c chown -R www-data:www-data /var/log/nginx && chown -R www-data:www-data /var/cache/nginx && chown -R www-data:www-data /usr/share/nginx && chown -R www-data:www-data /etc/nginx && touch /var/run/nginx.pid && chown -R www-data:www-data /var/run/nginx.pid && chown -R www-data:www-data /var/www/html && mkdir /var/run/php && chown -R www-data:www-data /var/run/php && touch /var/log/php-fpm.log && chown -R www-data:www-data /var/log/php-fpm.log && chown -R www-data:www-data /etc/z-push && mkdir /var/log/z-push && mkdir /var/lib/z-push && chown -R www-data:www-data /var/lib/z-push && chown -R www-data:www-data /var/log/z-push # buildkit |
| USER www-data |
| EXPOSE map[8080/tcp:{}] |
| ENTRYPOINT ["/start.sh"] |