Pour cet exercice sur Docker je me suis basée en partie du tuto en vidéo de YoanDev, il utilise uniquement les fonctionnalités en lignes de commandes mais moi j’ai fait un mix avec l’interface Docker Desktop.
Première étape Télécharger docker Ici je passe par Docker Desktop
Lancer l’installation et prendre en main l’interface grâce au petit tuto inclus
Créer son fichier de config Dockerfile dans un dossier docker de son projet Symfony :
# Image de base pour build du php 8.1 avec apache disponible sur le Hub Docker
FROM php:8.1-apache
# Répo Github qui permet d'installer toutes les extentions necessaires à un bon fonctionnement
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
#
RUN chmod +x /usr/local/bin/install-php-extensions && \
install-php-extensions pdo_pgsql intl
# Commande pour lancer composer
RUN curl -sSk https://getcomposer.org/installer | php -- --disable-tls && \
mv composer.phar /usr/local/bin/composer
# Commande pour lancer les apt update et install
RUN apt update && apt install -yqq nodejs npm
# Permet de copier notre projet dans le /var/www/ du conteneur
COPY . /var/www/
# Surcharge la configuration apache
COPY ./docker/apache.conf /etc/apache2/sites-available/000-default.conf
# Commandes pour se déplacer dans /var/www/ et lancer un composer install
RUN cd /var/www && \
composer install
WORKDIR /var/www/
# Expose le port 80 en dehors du conteneur
EXPOSE 80
Lance le build de l’image grâce au fichier de conf :
docker build -t selenegamesimage . -f ./docker/Dockerfile
-t pour nommer son image
Lancer son conteneur :
docker run -it selenegamesimage
Quand on modifie une conf, commande pour relance le conteneur :
docker-composer up -d
Un fois lancé, j’ai eu un soucis d’accès à mon app
Le problème venais du fait que je n’avais pas surchargé ma configuration apache pour que mon index.php soit bien déclaré.
J’ai placé ce fichier dans le dossier docker de mon projet que j’ai appelé apache.conf
# /etc/apache2/conf.d/example.com.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/public
DirectoryIndex /index.php
<Directory /var/www/project/public>
AllowOverride None
Order Allow,Deny
Allow from All
FallbackResource /index.php
</Directory>
# uncomment the following lines if you install assets as symlinks
# or run into problems when compiling LESS/Sass/CoffeeScript assets
# <Directory /var/www/project>
# Options FollowSymlinks
# </Directory>
ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>
Il faut ensuite déclarer ce nouveau fichier de configuration dans notre Dockerfile
COPY ./docker/apache.conf /etc/apache2/sites-available/000-default.conf
Et relancer le conteneur avec la nouvelle configuration :
docker-composer up -d