Partage
  • Partager sur Facebook
  • Partager sur Twitter

Symfony Mercure docker compose erreur

    3 février 2023 à 18:33:07

    Bonjour, J'ai un problème avec l'implémentation de mercure dans mon docker compose Je ne peux pas rendre le service disponible pour nginx depuis mon application Symfony. 
    Mon docker compose
    ```
    version: '3.7'
    services:
      web:
        image: nginx:alpinex
        restart: unless-stopped
        ports:
          - "8000:80"
        volumes:
          - .:/var/www:delegated
          - ./site.conf:/etc/nginx/conf.d/default.conf
        links:
          - php
      php:
        restart: unless-stopped
        build: ./docker/php
        volumes:
          - .:/var/www:delegated
        depends_on:
          - db
      db:
        image: jbergstroem/mariadb-alpine:latest
        restart: unless-stopped
        ports:
          - "8888:3306"
        environment:
          MYSQL_ROOT_PASSWORD: xxx
          MYSQL_DATABASE: xxx
          MYSQL_USER: xxx
          MYSQL_PASSWORD: xxx
        volumes:
          - db-data:/var/lib/mysql
          - ./var:/var/www/var
      redis:
        restart: unless-stopped
        image: redis:6-alpine
      messenger:
        build: ./docker/php
        volumes:
            - .:/var/www:delegated
        depends_on:
            - db
        restart: unless-stopped
        command: [ 'php', 'bin/console', 'messenger:consume', 'async', '--limit=10', '-vvv' ]
        environment:
          MESSENGER_TRANSPORT_DSN: redis://redis:6379/messages
          MESSENGER_TRANSPORT_FAILED_DSN: redis://redis:6379/messages_failed
      #Dev Tools
      redis-gui:
        image: rediscommander/redis-commander
        environment:
          - REDIS_HOSTS=local:redis:6379
        ports:
          - "8081:8081"
      mercure:
        image: dunglas/mercure
        restart: unless-stopped
        ports:
          - "3000:3000"
        environment:
          SERVER_NAME: ':3000'
          MERCURE_PUBLISHER_JWT_KEY: '!ChangeThisMercureHubJWTSecretKey!'
          MERCURE_SUBSCRIBER_JWT_KEY: '!ChangeThisMercureHubJWTSecretKey!'
          # Set the URL of your Symfony project (without trailing slash!) as value of the cors_origins directive
          MERCURE_EXTRA_DIRECTIVES: |
            cors_origins http://127.0.0.1:8000
        command: /usr/bin/caddy run --config /etc/caddy/Caddyfile.dev
        volumes:
          - mercure_data:/data
          - mercure_config:/config
    volumes:
      db-data:
      mercure_data:
      mercure_config:
    ```
    Mon site .conf nginx
    ```
    server {
        listen 80;
        server_name localhost;
        root /var/www/public;
        index index.php;
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
         # Mercure
        location /.well-known/mercure/ {
            proxy_pass http://mercure:3000/.well-known/mercure/;
            proxy_read_timeout 24h;
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            access_log    off;
        }
        location ~ \.php$ {
            try_files $uri /index.php =404;
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    ```
    .env.local
    ```
    MERCURE_URL=http://localhost:3000/.well-known/mercure
    MERCURE_PUBLIC_URL=http://localhost:3000/.well-known/mercure
    MERCURE_JWT_SECRET="!ChangeThisMercureHubJWTSecretKey!"
    ```
    Mon erreur symfony : 
    ```
    Failed to connect to localhost port 3000: Connection refused for "http://localhost:3000/.well-known/mercure".
    ```
    Je suis bloqué depuis 3 jours, j'ai essayé avec les versions précédentes pour le mercure, changé le réseau, essayé de modifier le proxy mais rien ne fonctionne.
    Merci beaucoup pour votre aide

    -
    Edité par Ramby98 4 février 2023 à 21:37:52

    • Partager sur Facebook
    • Partager sur Twitter

     Si tes résultats ne sont pas à la hauteur de tes espérancesdis-toi que le grand chêne aussi, un jour a été un gland. 

      3 février 2023 à 20:09:07

      Bonjour,

      J'ai utilisé Mercure mais dans une config ni docker ni nginx.

      Tu dois être sur un OS Linux si j'ai bien vu : as tu ouvert le port 3000 dans le firewall ?

      Dans un premier temps teste en désactivant le firewall : systemctl stop firewalld.

      A+

      • Partager sur Facebook
      • Partager sur Twitter
        4 février 2023 à 10:39:54

        Merci de ta réponse je suis sur MacOs je n'ai pas besoin d'ouvrir le port 3000 avec docker, sur le docker je n'ai pas de firewall
        • Partager sur Facebook
        • Partager sur Twitter

         Si tes résultats ne sont pas à la hauteur de tes espérancesdis-toi que le grand chêne aussi, un jour a été un gland. 

          4 février 2023 à 10:47:47

          Pourtant le message semble relatif à un problème de permission :

          Failed to connect to localhost port 3000: Connection refused for "http://localhost:3000/.well-known/mercure".

          N'étant pas dans la même config, je ne peux t'aider autrement.

          Bye

          • Partager sur Facebook
          • Partager sur Twitter
            4 février 2023 à 21:34:13

            Je viens de trouver c'est car localhost est pour chaque container, si tu veux accéder à un localhost d'un autre container il faut utiliser le nom de container donc dans mon .env.local c'etait cela qu'il fallait mettre.

            MERCURE_URL=http://mercure:3000/.well-known/mercure
            MERCURE_PUBLIC_URL=http://xxx.localhost:3000/.well-known/mercure

            -
            Edité par Ramby98 4 février 2023 à 21:36:08

            • Partager sur Facebook
            • Partager sur Twitter

             Si tes résultats ne sont pas à la hauteur de tes espérancesdis-toi que le grand chêne aussi, un jour a été un gland. 

              5 février 2023 à 7:25:23

              A savoir donc. Passe en résolu. Bye
              • Partager sur Facebook
              • Partager sur Twitter

              Symfony Mercure docker compose erreur

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown