[+] chore(root): Initialise le projet avec une structure de base

Crée la structure de base du projet Symfony, incluant les entités,
services, formulaires, et templates nécessaires pour la gestion des
comptes utilisateurs, la sécurité, et la gestion des mots de passe
oubliés. Ajoute également la configuration pour la gestion des assets
avec Vite, la gestion des fichiers avec Flysystem, et la
génération de sitemaps.
```
This commit is contained in:
Serreau Jovann
2025-12-11 17:22:26 +01:00
parent f9987d525e
commit 662bb0bcc6
89 changed files with 18001 additions and 6950 deletions

123
docker/actions/Dockerfile Normal file
View File

@@ -0,0 +1,123 @@
# Use the official Debian 12.11 (Bookworm) image as the base
FROM debian:12.11
# Set environment variables to prevent interactive prompts during apt operations
ENV DEBIAN_FRONTEND=noninteractive
# Update the package list and install necessary dependencies for adding Node.js and PHP repositories
# curl is needed to download the NodeSource setup script, Bun install script, and Composer installer
# gnupg is needed to handle GPG keys for apt repositories
# ca-certificates is needed for secure connections
# apt-transport-https is needed for apt to fetch packages over HTTPS
# unzip and tar are often required for Bun's installation process
# lsb-release is needed for add-apt-repository (which is not used directly, but useful for detecting distro)
# dirmngr is needed for adding GPG keys
# wget is needed to download the PHP repository GPG key
RUN apt-get update && \
apt-get install -y curl gnupg ca-certificates apt-transport-https unzip tar lsb-release dirmngr wget && \
rm -rf /var/lib/apt/lists/*
# Add NodeSource GPG key for Node.js 23.x repository
# The NodeSource setup script adds the repository and imports the GPG key.
# We're specifically targeting Node.js 23.x.
RUN curl -fsSL https://deb.nodesource.com/setup_23.x | bash -
# Install Node.js and npm from the NodeSource repository
# nodejs package includes both Node.js runtime and npm (Node Package Manager)
RUN apt-get update && \
apt-get install -y nodejs && \
rm -rf /var/lib/apt/lists/*
# Install Bun
# This command downloads and executes the official Bun installation script.
# It installs Bun globally.
RUN curl -fsSL https://bun.sh/install | bash
# Add Bun to the PATH for non-interactive shells and subsequent commands
# The Bun installer typically adds it to ~/.bashrc or similar, but for Docker,
# we need to ensure it's in the system-wide PATH or explicitly sourced.
# This line appends the Bun binary directory to the PATH environment variable.
ENV PATH="/root/.bun/bin:$PATH"
# Add Ondrej's PHP repository for Debian 12 (Bookworm)
# This repository provides up-to-date PHP versions.
RUN echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-php.list && \
wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
# Install PHP 8.3 and common extensions
# php8.3-cli: Command Line Interface
# php8.3-fpm: FastCGI Process Manager (for web servers like Nginx/Apache)
# php8.3-mysql: MySQL database extension
# php8.3-curl: cURL extension for making HTTP requests
# php8.3-mbstring: Multibyte string functions
# php8.3-xml: XML extension
# php8.3-zip: Zip archive extension (already present, but good to ensure)
# php8.3-gd: GD extension (for JPEG, WebP, etc.)
# php8.3-pdo: PDO (PHP Data Objects) extension
# php8.3-pgsql: PostgreSQL PDO driver
# php8.3-gmp: GNU Multiple Precision arithmetic functions
# php8.3-bcmath: Arbitrary precision mathematics
# php8.3-intl: Internationalization extension
# php8.3-redis: Redis extension
# php8.3-excimer: Excimer extension (for profiling)
# php8.3-xdebug: Xdebug extension (for debugging and profiling)
RUN apt-get update && \
apt-get install -y php8.3 php8.3-cli php8.3-fpm php8.3-mysql php8.3-curl php8.3-mbstring php8.3-xml php8.3-zip php8.3-gd php8.3-pdo php8.3-pgsql php8.3-gmp php8.3-bcmath php8.3-intl php8.3-redis php8.3-excimer php8.3-xdebug && \
rm -rf /var/lib/apt/lists/*
# Install Composer
# Download the Composer installer script
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Configure Xdebug
# Create a new INI file for Xdebug configuration.
# Set xdebug.mode to 'develop,debug' for development and debugging features.
# Set xdebug.start_with_request to 'yes' to always start Xdebug on every request.
# Set xdebug.client_host to 'host.docker.internal' for Docker Desktop compatibility
# This allows Xdebug to connect back to the host machine's IDE.
RUN echo "zend_extension=xdebug" > /etc/php/8.3/mods-available/xdebug.ini && \
echo "xdebug.mode=develop,debug" >> /etc/php/8.3/mods-available/xdebug.ini && \
echo "xdebug.start_with_request=yes" >> /etc/php/8.3/mods-available/xdebug.ini && \
echo "xdebug.client_host=host.docker.internal" >> /etc/php/8.3/mods-available/xdebug.ini
# --- Install Docker into the image ---
# Add Docker's official GPG key
RUN install -m 0755 -d /etc/apt/keyrings && \
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
chmod a+r /etc/apt/keyrings/docker.gpg
# Add the Docker repository to Apt sources
RUN echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
# Update apt package index and install Docker Engine, CLI, containerd, and Docker Compose plugin
RUN apt-get update && \
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && \
rm -rf /var/lib/apt/lists/*
# Verify Node.js, npm, Bun, PHP, Composer, and Docker installations
RUN node -v
RUN npm -v
RUN bun -v
RUN php -v
RUN composer -v
# Set a working directory (optional, but good practice for applications)
WORKDIR /app
# You can add your application code here, for example:
# COPY . /app
# Install dependencies using Bun
# This command assumes you have a package.json or bun.lockb file in your /app directory.
# If you don't have one, this command will likely fail or do nothing.
# RUN bun install
# EXPOSE 3000
# CMD ["node", "your-app.js"]
# Default command if no other command is specified when running the container
# This will keep the container running and allow you to exec into it.
CMD ["node"]