FROM php:8.1-apache

# Встановлення системних залежностей
RUN apt-get update && apt-get install -y \
    curl \
    zip \
    unzip \
    git \
    wget \
    gnupg \
    cron \
    supervisor \
    && rm -rf /var/lib/apt/lists/*

# Встановлення Node.js
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - \
    && apt-get install -y nodejs

# Встановлення Chrome залежностей для Puppeteer
RUN apt-get update && apt-get install -y \
    gconf-service \
    libasound2 \
    libatk1.0-0 \
    libc6 \
    libcairo2 \
    libcups2 \
    libdbus-1-3 \
    libexpat1 \
    libfontconfig1 \
    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 \
    libappindicator1 \
    libnss3 \
    lsb-release \
    xdg-utils \
    wget \
    && rm -rf /var/lib/apt/lists/*

# Встановлення PHP розширень
RUN docker-php-ext-install pdo pdo_mysql

# Встановлення Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Налаштування Apache
RUN a2enmod rewrite
COPY docker/apache-vhost.conf /etc/apache2/sites-available/000-default.conf

# Робоча директорія
WORKDIR /var/www/bnpparibas

# Копіювання файлів проекту
COPY . .

# Встановлення залежностей
RUN composer install --no-dev --optimize-autoloader
RUN npm install --production

# Налаштування прав доступу
RUN chown -R www-data:www-data /var/www/bnpparibas
RUN chmod +x bin/*.php bin/*.sh bnpparibas.js

# Створення директорій для логів
RUN mkdir -p /var/log/bnpparibas && chown www-data:www-data /var/log/bnpparibas

# Supervisor конфігурація
COPY docker/supervisord.conf /etc/supervisor/conf.d/bnpparibas.conf

# Cron налаштування
COPY docker/crontab /etc/cron.d/bnpparibas
RUN chmod 0644 /etc/cron.d/bnpparibas && crontab /etc/cron.d/bnpparibas

# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
    CMD curl -f http://localhost/health_check.php || exit 1

# Відкриваємо порти
EXPOSE 80

# Скрипт запуску
COPY docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]
