# Créer une image Docker pour votre projet Symfony > ⚠ La procédure suivante s'applique dans le cadre d'un déploiement sur Docker. > > Pour créer une image à destination d'un environnement Kubernetes, préférer > la procédure ["Usage dans Kubernetes"](./kubernetes-usage.md) ## Création d'une image 1. Dans le répertoire de votre projet, créer le fichier `Dockerfile` suivant: ```Dockerfile ARG ADDITIONAL_PACKAGES="" FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-standalone ``` > La variable d'environnement `ADDITIONAL_PACKAGES` permet de définir une liste de paquets supplémentaires à installer avant d'exécuter les "triggers" de base embaqrués par l'image. Voir ["Installer des paquets supplémentaires"](./additional-packages.md) pour plus d'information. 2. Créer le fichier `.dockerignore` avec les données suivantes: ```text /vendor /var ``` 3. Construire l'image de votre application ```sh docker build \ -t my-symfony-app:latest \ . ``` 4. Exécuter l'image de votre application ```sh docker run \ -it \ --rm \ -p 8080:8080 \ my-symfony-app:latest ``` 5. Ouvrir l'URL http://localhost:8080. Votre application devrait s'afficher. ## Utilisation de votre image en développement 1. **Avec docker**: ```sh docker run \ -it --rm \ -p 8080:8080 \ -v "${PWD}/src:/app/src:delegated" \ -v "${PWD}/templates:/app/templates:delegated" \ -v "${PWD}/translations:/app/translations:delegated" \ -v "${PWD}/tests:/app/tests:delegated" \ -v "${PWD}/config:/app/config:delegated" \ -v "${PWD}/.env:/app/.env:delegated" \ test-symfony-app ``` 2. **Avec docker-compose**: 1. Créer un fichier `Dockerfile.standalone` à la racine de votre projet: ```dockerfile ARG ADDITIONAL_PACKAGES="" FROM reg.cadoles.com/cadoles/symfony:alpine-php-8.1-standalone ``` 2. Créer un fichier `docker-compose.yml`: ```yaml version: '3' services: app: build: context: . dockerfile: Dockerfile.standalone ports: - ${APP_HTTP_PORT:-8080}:8080 volumes: - ./src:/app/src:delegated - ./templates:/app/templates:delegated - ./translations:/app/translations:delegated - ./tests:/app/tests:delegated - ./config:/app/config:delegated - ./.env:/app/.env:delegated environment: PHP_FPM_MEMORY_LIMIT: 128m APP_ENV: dev ## truncated for brevity ``` 3. Démarrer l'environnement ```sh docker-compose up ```