C'est une méthode nécessaire pour ne pas avoir à installer toutes les versions des outils sur notre machine quand on peut avoir à travailler sur différents projets (nouveaux comme anciens) au cours d'une journée.
Microsoft fourni l'extension propriétaire “devcontainer” pour Code qui n'est pas disponible pour Codium. Elle permet d'ouvrir un projet dans un container et d'utiliser les outils qu'il contient, comme la bonne version de Php.
Voyons comment faire avec Codium
php.validate.executablePath et php.debug.executablePath ainsi que run PHP, debug with Xdebug & test with PHPUnit
Avec sail (docker compose) :
Ajouter openssh-server Dans le Dockerfile :
RUN apt-get install -y openssh-server RUN mkdir /home/sail/.ssh COPY authorized_keys /home/sail/.ssh/authorized_keys RUN chmod -R go= /home/sail/.ssh RUN chown -R sail /home/sail/.ssh
À la fin du fichier start-container on lance le serveur ssh :
...
else
service ssh start
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
fi
Puis on rebuild l'image avec sail:
./sail build
Dans le docker-compose.yml on expose le port:
services:
laravel.test:
ports:
- '${FORWARD_SSH_PORT:-22}:22'
et pour permettre de conserver les extensions installées, on montre un dossier local .vscodium-server :
services:
laravel.test:
volumes:
- '.vscodium-server:/home/sail/.vscodium-server'
Pour lancer npm run dev depuis un terminal dans codium sans avoir d'erreur CORS il faut modifier le script dev dans le package.json :
{
"scripts": {
"dev": "vite --host"
},
Annotation to ignore diagnostics/problems on statement level:
/** @disregard [OPTIONAL CODE] [OPTIONAL DESCRIPTION] */ /** @disregard P1013 method exists on runtime type */