I have Traefik + springboot docker compose file. I am not sure what am I missing. I have tried few approached and cannot get it to work and I need expert advise on the issue I am facing.
Below is my docker-compose file. Springboot application exposes 8080.
version: '3.8'
services:
traefik:
image: "traefik:v3.0"
container_name: "traefik"
command:
#- "--log.level=DEBUG"
- "--api.insecure=true"
- "--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.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.myresolver.acme.email=my_email@gmail.com"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- web
springboot-app:
image: springboot-app/app:2.1.5
container_name: springboot-app
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres:5432/app
- SPRING_DATASOURCE_USERNAME=app
- SPRING_DATASOURCE_PASSWORD=app
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
ports:
- 8080
labels:
- "traefik.enable=true"
- "traefik.http.routers.springboot.rule=Host(`mydomain.com`)"
- "traefik.http.routers.springboot.entrypoints=web"
- "traefik.http.routers.springboot.tls=true"
- "traefik.http.routers.springboot.tls.certresolver=myresolver"
- "traefik.http.services.springboot.loadbalancer.server.port=8080"
depends_on:
- postgres
networks:
- web
postgres:
image: postgres:14-alpine
container_name: postgres
ports:
- "5432:5432"
restart: always
environment:
- POSTGRES_USER=USER
- POSTGRES_PASSWORD=PASSWORD
volumes:
- ./data:/var/lib/postgresql/data
networks:
- web
volumes:
postgres_data:
traefik_certificates:
networks:
web:
external: false
FYI... changing web to websecure returns this error in browser
Bad Request
This combination of host and port requires TLS.