version: '3.8' services: app: build: context: . # Utiliser le Dockerfile dans le répertoire courant volumes: - .:/var/www/html working_dir: /var/www/html depends_on: - db web: image: nginx:latest volumes: - .:/var/www/html - ./nginx/default.conf:/etc/nginx/conf.d/default.conf # Assurez-vous que c'est bien un fichier ports: - "8080:80" depends_on: - app db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: symfony MYSQL_USER: user MYSQL_PASSWORD: password volumes: - db_data:/var/lib/mysql phpmyadmin: image: phpmyadmin/phpmyadmin environment: PMA_HOST: db MYSQL_ROOT_PASSWORD: root ports: - "8081:80" depends_on: - db rabbitmq: image: rabbitmq:3-management ports: - "15672:15672" - "5672:5672" environment: RABBITMQ_DEFAULT_USER: guest RABBITMQ_DEFAULT_PASS: guest ###> doctrine/doctrine-bundle ### database: image: postgres:${POSTGRES_VERSION:-16}-alpine environment: POSTGRES_DB: ${POSTGRES_DB:-app} # You should definitely change the password in production POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-!ChangeMe!} POSTGRES_USER: ${POSTGRES_USER:-app} healthcheck: test: ["CMD", "pg_isready", "-d", "${POSTGRES_DB:-app}", "-U", "${POSTGRES_USER:-app}"] timeout: 5s retries: 5 start_period: 60s volumes: - database_data:/var/lib/postgresql/data:rw # You may use a bind-mounted host directory instead, so that it is harder to accidentally remove the volume and lose all your data! # - ./docker/db/data:/var/lib/postgresql/data:rw ###< doctrine/doctrine-bundle ### volumes: db_data: ###> doctrine/doctrine-bundle ### database_data: ###< doctrine/doctrine-bundle ###