I am trying to configure bitnami's docker implementation of Magento from GitHub to run with Traefik.
I have these two files: docker-compose.yml
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
version: '2'
services:
traefik:
image: traefik:latest
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- "./traefik.yaml:/etc/traefik/traefik.yaml"
- "./traefik/data:/data"
- "/var/run/docker.sock:/var/run/docker.sock"
mariadb:
image: docker.io/bitnami/mariadb:10.6
environment:
- ALLOW_EMPTY_PASSWORD=no
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
- MARIADB_USER=${DB_USER}
- MARIADB_PASSWORD=${MARIADB_PASSWORD}
- MARIADB_DATABASE=${DB_NAME}
volumes:
- 'mariadb_data:/bitnami/mariadb'
magento:
image: docker.io/bitnami/magento:2
# ports:
# - '80:8080'
# - '443:8443'
labels:
- "traefik.enable=true"
- "traefik.http.routers.magento.rule=Host(`${MAGENTO_HOST_URL}`)"
- "traefik.http.routers.magento.entrypoints=websecure"
- "traefik.http.services.magento.loadbalancer.server.port=5006"
environment:
- MAGENTO_HOST=${MAGENTO_HOST_URL}
- MAGENTO_ENABLE_HTTPS=no
- MAGENTO_ENABLE_ADMIN_HTTPS=no
- MAGENTO_DATABASE_HOST=mariadb
- MAGENTO_DATABASE_PORT_NUMBER=3306
- MAGENTO_DATABASE_USER=${DB_USER}
- MAGENTO_DATABASE_NAME=${DB_NAME}
- MAGENTO_DATABASE_PASSWORD=${MARIADB_PASSWORD}
- ELASTICSEARCH_HOST=elasticsearch
- ELASTICSEARCH_PORT_NUMBER=9200
- ALLOW_EMPTY_PASSWORD=no
- MAGENTO_ADMIN_URL_PREFIX=${MAGENTO_ADMIN_URL_PREFIX}
- MAGENTO_USERNAME=${MAGENTO_USERNAME}
- MAGENTO_PASSWORD=${MAGENTO_PASSWORD}
- MAGENTO_EMAIL=${MAGENTO_EMAIL}
volumes:
- 'magento_data:/bitnami/magento'
depends_on:
- mariadb
- elasticsearch
elasticsearch:
image: docker.io/bitnami/elasticsearch:7
volumes:
- 'elasticsearch_data:/bitnami/elasticsearch/data'
# phpmyadmin:
# image: phpmyadmin
# restart: unless-stopped
# ports:
# - 8081:80
# environment:
# - PMA_ARBITRARY=1
# - PMA_HOST=mariadb
volumes:
mariadb_data:
driver: local
magento_data:
driver: local
elasticsearch_data:
driver: local
and traefik.yaml
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: true
websecure:
address: ":443"
http:
tls:
certResolver: letsencrypt
providers:
docker: {}
certificatesResolvers:
letsencrypt:
acme:
email: [email protected] # redacted - my real email address here
storage: /data/letsencrypt.json
httpChallenge:
entryPoint: web
With this setup, I get a 502 error when connecting to either http:// or https:// ${MAGENTO_HOST_URL}
When I 'toggle' Traefik off like in this docker-compose.yml, http:// works.
# Copyright Broadcom, Inc. All Rights Reserved.
# SPDX-License-Identifier: APACHE-2.0
version: '2'
services:
# traefik:
# image: traefik:latest
# restart: unless-stopped
# ports:
# - "80:80"
# - "443:443"
# volumes:
# - "./traefik.yaml:/etc/traefik/traefik.yaml"
# - "./traefik/data:/data"
# - "/var/run/docker.sock:/var/run/docker.sock"
mariadb:
image: docker.io/bitnami/mariadb:10.6
environment:
- ALLOW_EMPTY_PASSWORD=no
- MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
- MARIADB_USER=${DB_USER}
- MARIADB_PASSWORD=${MARIADB_PASSWORD}
- MARIADB_DATABASE=${DB_NAME}
volumes:
- 'mariadb_data:/bitnami/mariadb'
magento:
image: docker.io/bitnami/magento:2
ports:
- '80:8080'
- '443:8443'
# labels:
# - "traefik.enable=true"
# - "traefik.http.routers.magento.rule=Host(`${MAGENTO_HOST_URL}`)"
# - "traefik.http.routers.magento.entrypoints=websecure"
# - "traefik.http.services.magento.loadbalancer.server.port=5006"
environment:
- MAGENTO_HOST=${MAGENTO_HOST_URL}
- MAGENTO_ENABLE_HTTPS=no
- MAGENTO_ENABLE_ADMIN_HTTPS=no
- MAGENTO_DATABASE_HOST=mariadb
- MAGENTO_DATABASE_PORT_NUMBER=3306
- MAGENTO_DATABASE_USER=${DB_USER}
- MAGENTO_DATABASE_NAME=${DB_NAME}
- MAGENTO_DATABASE_PASSWORD=${MARIADB_PASSWORD}
- ELASTICSEARCH_HOST=elasticsearch
- ELASTICSEARCH_PORT_NUMBER=9200
- ALLOW_EMPTY_PASSWORD=no
- MAGENTO_ADMIN_URL_PREFIX=${MAGENTO_ADMIN_URL_PREFIX}
- MAGENTO_USERNAME=${MAGENTO_USERNAME}
- MAGENTO_PASSWORD=${MAGENTO_PASSWORD}
- MAGENTO_EMAIL=${MAGENTO_EMAIL}
volumes:
- 'magento_data:/bitnami/magento'
depends_on:
- mariadb
- elasticsearch
elasticsearch:
image: docker.io/bitnami/elasticsearch:7
volumes:
- 'elasticsearch_data:/bitnami/elasticsearch/data'
# phpmyadmin:
# image: phpmyadmin
# restart: unless-stopped
# ports:
# - 8081:80
# environment:
# - PMA_ARBITRARY=1
# - PMA_HOST=mariadb
volumes:
mariadb_data:
driver: local
magento_data:
driver: local
elasticsearch_data:
driver: local
I have tried toggling MAGENTO_ENABLE_HTTPS
on and off, but no combination appears to work with Traefik.
Any hints would be much appreciated.
Turns out my error was this line
- "traefik.http.services.magento.loadbalancer.server.port=5006"
Remove it, and all is well. I am not using a load balancer, but I suspect the port number is the issue.