GOOGLE ADS

Donnerstag, 14. April 2022

Docker - Symfony5/Mercure: Mercure-Hub kann nicht erreicht werden

Ich versuche erfolglos, über meinen Browser unter dieser URL auf den Hub von Mercure zuzugreifen: http://locahost:3000 => ERR_CONNECTION_REFUSED

Ich verwende Docker für meine Entwicklung. Hier ist meine docker-compose.yml:

# docker/docker-compose.yml
version: '3'
services:
database:
container_name: test_db
build:
context:./database
environment:
- MYSQL_DATABASE=${DATABASE_NAME}
- MYSQL_USER=${DATABASE_USER}
- MYSQL_PASSWORD=${DATABASE_PASSWORD}
- MYSQL_ROOT_PASSWORD=${DATABASE_ROOT_PASSWORD}
ports:
- "3309:3306"
volumes:
-./database/init.sql:/docker-entrypoint-initdb.d/init.sql
-./database/data:/var/lib/mysql
php-fpm:
container_name: test_php
build:
context:./php-fpm
depends_on:
- database
environment:
- APP_ENV=${APP_ENV}
- APP_SECRET=${APP_SECRET}
- DATABASE_URL=mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@database:3306/${DATABASE_NAME}?serverVersion=5.7
volumes:
-./src:/var/www
nginx:
container_name: test_nginx
build:
context:./nginx
volumes:
-./src:/var/www
-./nginx/nginx.conf:/etc/nginx/nginx.conf
-./nginx/sites/:/etc/nginx/sites-available
-./nginx/conf.d/:/etc/nginx/conf.d
-./logs:/var/log
depends_on:
- php-fpm
ports:
- "8095:80"
caddy:
container_name: test_mercure
image: dunglas/mercure
restart: unless-stopped
environment:
MERCURE_PUBLISHER_JWT_KEY: '!ChangeMe!'
MERCURE_SUBSCRIBER_JWT_KEY: '!ChangeMe!'
PUBLISH_URL: '${MERCURE_PUBLISH_URL}'
JWT_KEY: '${MERCURE_JWT_KEY}'
ALLOW_ANONYMOUS: '${MERCURE_ALLOW_ANONYMOUS}'
CORS_ALLOWED_ORIGINS: '${MERCURE_CORS_ALLOWED_ORIGINS}'
PUBLISH_ALLOWED_ORIGINS: '${MERCURE_PUBLISH_ALLOWED_ORIGINS}'
ports:
- "3000:80"

Ich habe erfolgreich ausgeführt:

docker-compose up -d

docker ps -a:

CONTAINER ID IMAGE  COMMAND  CREATED STATUS PORTS    NAMES
0e4a72fe75b2 dunglas/mercure "caddy run --config …" 2 hours ago Up 2 hours 443/tcp, 2019/tcp, 0.0.0.0:3000->80/tcp,:::3000->80/tcp test_mercure
724fe920ebef nginx "/docker-entrypoint.…" 3 hours ago Up 3 hours 0.0.0.0:8095->80/tcp,:::8095->80/tcp test_nginx
9e63fddf50ef php-fpm "docker-php-entrypoi…" 3 hours ago Up 3 hours 9000/tcp test_php
e7989b26084e database "docker-entrypoint.s…" 3 hours ago Up 3 hours 0.0.0.0:3309->3306/tcp,:::3309->3306/tcp test_db

Ich kann http://localhost:8095 erreichen, um auf meine Symfony-App zuzugreifen, aber ich weiß nicht, unter welcher URL ich den Hub meines Mercure erreichen soll.

Danke für Ihre Hilfe!


Lösung des Problems

Ich habe monatelang versucht, symfony + nginx + mysql + phpmyadmin + mercure + docker dazu zu bringen, sowohl lokal für die Entwicklung als auch (offensichtlich) in der Produktion zu arbeiten. Umsonst. Und obwohl dies Ihre Frage nicht direkt beantwortet. Ich kann nur mit einer "Antwort" beitragen, da ich nicht genug Ruf habe, um nur zu kommentieren, sonst hätte ich das getan.

Wenn Sie aus irgendeinem Grund außer einem Webserver nicht an nginx gebunden sind und ihn durch caddy ersetzen können, habe ich ein Repo, das symfony + caddy + mysql + phpmyadmin + mercure + docker ist, das sowohl lokal als auch mit SSL funktioniert in Produktion.

https://github.com/thund3rb1rd78/symfony-mercure-website-skeleton-dockerized

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...