FROM debian:11

MAINTAINER bwcoders.com

ENV STATIC_HOST=$STATIC_HOST

ARG UID
ENV UID=${UID}

ARG GID
ENV GID=${GID}

RUN apt-get update && apt-get dist-upgrade -y && export LANG=C.UTF-8

# Install required dependencies
RUN apt-get update && apt-get upgrade -y && apt-get install -y \
    git \
    unzip \
    zip \
    vim \
    mc \
    mcedit \
    wget \
    curl \
    sudo \
    gnupg \
    apache2 \
    nodejs \
    npm \
    ca-certificates \
    apt-transport-https

RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
#RUN curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

RUN apt-get update && apt-get dist-upgrade -y
RUN apt-get install -y gcc make autoconf libc-dev pkg-config

RUN wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
RUN echo "deb https://packages.sury.org/php/ bullseye main" | tee /etc/apt/sources.list.d/php.list

# Install PHP
RUN apt-get update && apt-get install -y \
        php8.0 \
        php8.0-mysql \
        php8.0-xml \
        php8.0-gd \
        php8.0-curl \
        php8.0-exif \
        php8.0-calendar \
        php8.0-iconv \
        php8.0-tokenizer \
        php8.0-zip \
        php8.0-mbstring \
        php8.0-bcmath \
        php8.0-pdo \
        php8.0-soap \
        php8.0-intl \
        php8.0-http \
        php8.0-imap \
        php8.0-raphf \
        poppler-utils \
        mariadb-client \
        mcrypt \
        php8.0-redis \
        redis-server \
        nodejs \
    && rm -r /var/lib/apt/lists/* \
    && apt-get clean

WORKDIR /usr/local/bin

# Install composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN update-alternatives --set php /usr/bin/php8.0

RUN apt-get update && apt-get install -y \
 libfontenc1 \
 libxfont2 \
 x11-common \
 xfonts-encodings \
 xfonts-utils \
 xfonts-base \
 xfonts-75dpi \
 fontconfig
#RUN wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bullseye_amd64.deb
#RUN sudo dpkg -i wkhtmltox_0.12.6-1.stretch_amd64.deb
#RUN rm wkhtmltox_0.12.6-1.stretch_amd64.deb
RUN apt-get install -y wkhtmltopdf

WORKDIR /var/www/app

# Instalacja chrome na kontenerze do potrzeb Headless Chrome - Wersję puppeteera powinniśmy aktualizować ręcznie
RUN apt-get update && apt-get install -y \
gconf-service \
libasound2 \
libatk1.0-0 \
libc6 \
libcairo2 \
libcups2 \
libdbus-1-3 \
libexpat1 \
libfontconfig1 \
libgbm1 \
libgcc1 \
libgconf-2-4 \
libgdk-pixbuf2.0-0 \
libglib2.0-0 \
libgtk-3-0 \
libnspr4 \
libpango-1.0-0 \
libpangocairo-1.0-0 \
libstdc++6 \
libx11-6 \
libx11-xcb1 \
libxcb1 \
libxcomposite1 \
libxcursor1 \
libxdamage1 \
libxext6 \
libxfixes3 \
libxi6 \
libxrandr2 \
libxrender1 \
libxss1 \
libxtst6 \
ca-certificates \
fonts-liberation \
libnss3 \
lsb-release \
xdg-utils \
wget \
libgbm-dev
RUN npm install --global --unsafe-perm puppeteer@5.2.1
#RUN chmod -R o+rx /usr/lib/node_modules/puppeteer/.local-chromium

COPY start.sh /usr/local/bin/start

RUN chown -R www-data:www-data /var/www/
RUN chmod u+x /usr/local/bin/start

ADD sites-enabled /etc/apache2/sites-enabled/

RUN /etc/init.d/apache2 stop
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf
RUN a2enmod ssl
RUN a2enmod rewrite
RUN a2enmod headers

ADD s3.ini /etc/php/8.0/apache2/conf.d/s3.ini
ADD s3.ini /etc/php/8.0/cli/conf.d/s3.ini

RUN sed -i 's/opcache.validate_timestamps=0/opcache.validate_timestamps=1/g' /etc/php/8.0/apache2/conf.d/s3.ini
RUN sed -i 's/opcache.validate_timestamps=0/opcache.validate_timestamps=1/g' /etc/php/8.0/cli/conf.d/s3.ini

RUN mkdir -m 700 -p /root/.ssh/
RUN mkdir -m 700 -p /var/www/.ssh/

# kopiowanie kluczy SSH do GIT - na testing/prod
COPY .ssh/ /var/www/.ssh/
COPY .ssh/ /root/.ssh/

RUN touch /root/.ssh/known_hosts
RUN touch /var/www/.ssh/known_hosts
RUN chmod 644 /root/.ssh/known_hosts
RUN chmod 644 /var/www/.ssh/known_hosts

RUN usermod -u $UID www-data && groupmod -g $GID www-data
RUN chown -R www-data:www-data /var/www/
RUN chmod u+x /usr/local/bin/start

CMD ["/usr/local/bin/start"]
