#wordpress #docker #traefik #bitnami
Вопрос:
Я настраиваю сайт wordpress с использованием изображений bitnami, они предоставляют непривилегированные порты 8181 и 8443 , поэтому я хотел бы сопоставить порт 443 с портом контейнера службы 8443, я попытался с помощью expose: [8443] и безуспешно определил порт балансировки нагрузки. не очень ясно, должен ли я определять целевой порт в службе или в промежуточном программном обеспечении.
вот мое определение traefik
version: "3.7" networks: traefik: external: true services: traefik: image: "traefik:v2.5" container_name: traefik restart: unless-stopped command: - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.myresolver.acme.httpchallenge=true" - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web" - "--certificatesresolvers.myresolver.acme.email=mail@me.com" - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" ports: - "80:80" - "443:443" networks: - traefik volumes: - "letsencrypt:/letsencrypt" - "/var/run/docker.sock:/var/run/docker.sock:ro"
И сервис (соответствующие части)
wordpress: image: docker.io/bitnami/wordpress-nginx:5 volumes: - wordpress_data:/bitnami/wordpress depends_on: - mariadb environment: .... .... NGINX_HTTP_PORT_NUMBER: 8181 NGINX_HTTPS_PORT_NUMBER: 8443 networks: - traefik - backend labels: - "traefik.enable=true" - "traefik.docker.network=traefik" - "traefik.http.routers.wordpress.rule=Host(`domain.com`)" - "traefik.http.routers.wordpress.entrypoints=web" - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" - "traefik.http.routers.wordpress.middlewares=redirect-to-https@docker" - "traefik.http.routers.wordpress-secured.rule=Host(`domain.com`)" - "traefik.http.routers.wordpress-secured.entrypoints=websecure" - "traefik.http.routers.wordpress-secured.tls=true" - "traefik.http.routers.wordpress-secured.tls.certresolver=myresolver"
Ответ №1:
Хорошо, я нашел решение: мне нужно настроить порт сервера loadbalancer, чтобы сообщить traefik, где служба прослушивает
services: wordpress: labels: - 'traefik.http.services.wordpress-secured.LoadBalancer.server.port=8181'