FROM mcr.microsoft.com/powershell:ubuntu-bionic

ARG DEBIAN_FRONTEND=noninteractive
ARG PHP_VERSION=7.4

COPY init/entrypoint.sh /usr/local/bin

RUN chmod +x /usr/local/bin/entrypoint.sh && \
    apt-get update && \
    apt-get upgrade -y && \
    apt-get install -y --no-install-recommends \
      libterm-readline-gnu-perl \
      software-properties-common && \
    add-apt-repository ppa:ondrej/php && \
    apt-get install -y --no-install-recommends \
      lighttpd \
      php$PHP_VERSION-cgi \
      php$PHP_VERSION-common \
      php$PHP_VERSION-curl \
      php$PHP_VERSION-gd \
      php$PHP_VERSION-json \
      php$PHP_VERSION-ldap \
      php$PHP_VERSION-mbstring \
      php$PHP_VERSION-pdo \
      php$PHP_VERSION-sqlite3 \
#      php$PHP_VERSION-session \
      php$PHP_VERSION-xml \
      php$PHP_VERSION-xmlrpc \
      php$PHP_VERSION-zip && \
    # Enable PHP
    lighttpd-enable-mod fastcgi-php && \
    # Include vhost's
    sed -i -e '$a\' -e 'include_shell "cat /etc/lighttpd/vhosts.d/*.conf"' /etc/lighttpd/lighttpd.conf && \
    # Enable browscap
    sed -i -e 's|;browscap.*|browscap = /usr/lib/php/browscap.ini|' /etc/php/$PHP_VERSION/cgi/php.ini && \
    curl -Ls https://browscap.org/stream?q=Lite_PHP_BrowsCapINI -o /usr/lib/php/browscap.ini && \
    # Set timezone
    sed -i -e 's|;date.timezone.*|date.timezone = Europe/Amsterdam|' /etc/php/$PHP_VERSION/cgi/php.ini && \
    mkdir -p /run/lighttpd/ && chown www-data /run/lighttpd/ && \
    apt-get remove -y \
      libterm-readline-gnu-perl \
      software-properties-common && \
    apt-get autoremove -y && \
    rm -rf /var/lib/apt/lists/* && \
    pwsh -Command "Set-PSRepository -Name 'PSGallery' -InstallationPolicy 'Trusted' -Verbose" && \
    pwsh -Command "Install-Module -Name ExchangeOnlineManagement -RequiredVersion 2.0.4-Preview2 -AllowPrerelease -Verbose"

VOLUME /data/scripts
VOLUME /etc/lighttpd/vhosts.d
VOLUME /var/www

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["lighttpd", "-D", "-f", "/etc/lighttpd/lighttpd.conf"]