37 lines
1.0 KiB
YAML
37 lines
1.0 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
vue-app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: vue-demo-app
|
|
restart: unless-stopped
|
|
networks:
|
|
- web_proxy
|
|
labels:
|
|
- "traefik.enable=true"
|
|
|
|
# HTTP Router
|
|
- "traefik.http.routers.vue-demo.rule=Host(`${DOMAIN}`)"
|
|
- "traefik.http.routers.vue-demo.entrypoints=web"
|
|
- "traefik.http.routers.vue-demo.middlewares=redirect-to-https"
|
|
|
|
# HTTPS Router
|
|
- "traefik.http.routers.vue-demo-secure.rule=Host(`${DOMAIN}`)"
|
|
- "traefik.http.routers.vue-demo-secure.entrypoints=websecure"
|
|
- "traefik.http.routers.vue-demo-secure.tls=true"
|
|
- "traefik.http.routers.vue-demo-secure.tls.certresolver=letsencrypt"
|
|
|
|
# Service
|
|
- "traefik.http.services.vue-demo.loadbalancer.server.port=80"
|
|
|
|
# Middleware per redirect HTTP -> HTTPS
|
|
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
|
|
- "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true"
|
|
|
|
networks:
|
|
web_proxy:
|
|
external: true
|
|
|