FROM git.alshafagh.ir/docker/php:8.2-cli-bullseye
RUN apt-get update; \
    apt-get upgrade -yqq; \
    pecl -q channel-update pecl.php.net; \
    apt-get install -yqq --no-install-recommends --show-progress \
          apt-utils \
          gnupg \
          gosu \
          git \
          curl \
          wget \
          libcurl4-openssl-dev \
          ca-certificates \
          supervisor \
          libmemcached-dev \
          libz-dev \
          libbrotli-dev \
          libpq-dev \
          libjpeg-dev \
          libpng-dev \
          libfreetype6-dev \
          libssl-dev \
          libwebp-dev \
          libmcrypt-dev \
          libonig-dev \
          libzip-dev zip unzip \
          libargon2-1 \
          libidn2-0 \
          libpcre2-8-0 \
          libpcre3 \
          libxml2 \
          libzstd1 \
          procps \
          zlib1g-dev \
          libicu-dev \
          g++ \
          libc-ares-dev \
          libnss3 libatk1.0-0 \
          libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 \
          libpango1.0.0 libcairo2 libasound2 libxfixes3 libatk-bridge2.0.0 

RUN docker-php-ext-configure zip
RUN docker-php-ext-configure intl
RUN docker-php-ext-configure gd --prefix=/usr --with-jpeg --with-webp --with-freetype
RUN docker-php-ext-install pdo_mysql exif pcntl bcmath gd intl zip mbstring sockets
RUN pecl install redis
RUN pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-hook-curl="yes" enable-cares="yes" with-postgres="yes"' openswoole
RUN docker-php-ext-enable redis openswoole
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
RUN apt-get install -y nodejs build-essential
RUN npm install -g npm
RUN groupadd --force -g 1000 octane && useradd -ms /bin/bash --no-log-init --no-user-group -g 1000 -u 1000 octane
WORKDIR /app
RUN chown -R octane:octane .
EXPOSE 80
COPY ./supervisord.conf /etc/supervisor/octane.conf
COPY ./entrypoint.sh /etc/entrypoint.sh
ENTRYPOINT ["/etc/entrypoint.sh"]
HEALTHCHECK --start-period=30s --interval=30s --timeout=5s --retries=8 CMD php artisan octane:status || exit 1
