FROM php:8.3-apache
ARG DOMAIN=price-history.shoppingbuilders.com

ARG DOMAIN

RUN apt-get update && \
  apt-get install -y \
  ssl-cert \
  wget \
  npm \
  git \
  zip \
  nano \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

RUN a2enmod ssl
RUN a2enmod rewrite

# Install pdo, pdo_mysql and mysqli PHP extensions for MySQL support
RUN docker-php-ext-install pdo pdo_mysql mysqli && docker-php-ext-enable pdo pdo_mysql mysqli

# Set working directory
WORKDIR /var/www/html

COPY --from=composer /usr/bin/composer /usr/bin/composer

# To create a fresh certificate
# RUN make-ssl-cert generate-default-snakeoil --force-overwrite

# Set up Apache virtual host
COPY ./server/apache-conf/apache-config.conf /etc/apache2/sites-available/000-default.conf
COPY ./server/apache-conf/apache-ssl-config.conf /etc/apache2/sites-available/default-ssl.conf

# Update domains on apache configurations
RUN sed -i "s|DOMAIN|${DOMAIN}|g" /etc/apache2/sites-available/000-default.conf \
  && sed -i "s|DOMAIN|${DOMAIN}|g" /etc/apache2/sites-available/default-ssl.conf

# Set up Apache ports
COPY ./server/apache-conf/apache-ports.conf /etc/apache2/ports.conf

RUN a2ensite default-ssl

# Copy PHP application files into the image
COPY . .

# Update domains on script to fetch prices
RUN sed -i "s|good-ace-mouse.ngrok-free.app|${DOMAIN}|g" ./src/js/price-history.js

# Copy the startup script
COPY ./server/scripts/start.sh /usr/local/bin/start.sh

# Make the script executable
RUN chmod +x /usr/local/bin/start.sh

# Execute the startup script
CMD ["/usr/local/bin/start.sh"]