# Use an official PHP runtime as a parent image FROM php:8.1-fpm # Set the working directory WORKDIR /workspace # Install dependencies RUN apt-get update && apt-get install -y \ git \ openssh-client \ unzip \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libonig-dev \ libzip-dev \ libpq-dev \ zip \ fish \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install gd mbstring zip pdo pdo_mysql pdo_pgsql # Install Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # Install Node.js and npm RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && \ apt-get install -y nodejs # Install PM2 globally RUN npm install -g pm2 # Switch to Fish shell SHELL [ "fish", "--command" ] RUN chsh -s /usr/bin/fish ENV SHELL /usr/bin/fish ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8 # Create a directory for the SSH keys RUN mkdir -p /root/.ssh # Copy the entrypoint script into the container COPY entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh # Expose ports EXPOSE 8000 # Set the entrypoint ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]