cc96c06c84
Deploy Polska Lokalnie / deploy (push) Failing after 0s
Logowanie z https://polskalokalnie.pl konczylo sie bledem 403, a nie 401 - zadanie w ogole nie docieralo do logiki uwierzytelniania. Nginx terminuje TLS i przekazuje ruch do backendu po http, wiec Spring widzi schemat http, podczas gdy przegladarka przysyla Origin z https. Schematy sie roznia, wiec zadanie jest traktowane jako cross-origin i sprawdzane wzgledem listy dozwolonych originow, na ktorej byly wylacznie adresy lokalne i LAN. Frontend pokazywal przy tym generyczny komunikat, bo odpowiedz CORS nie jest JSON-em z pole "message". Dodanie domeny produkcyjnej do listy przywraca poprawne zachowanie: zle haslo zwraca 401 z czytelnym komunikatem, poprawne 200. Poza tym: - name: polskalokalnie w obu plikach compose. Bez tego Compose wyprowadza nazwe projektu z nazwy katalogu, a na serwerze kazda z trzech aplikacji siedzi w katalogu "app" - komenda bez -p wchodzila w stack innej aplikacji i podmieniala w nim serwis backend. - restart: unless-stopped na serwisach produkcyjnych. Kontenery polskalokalnie mialy polityke "no" i jako jedyne na serwerze nie wstawaly po reboocie. W pliku deweloperskim swiadomie tego nie ma - lokalnie kontenery nie powinny startowac same przy kazdym uruchomieniu Dockera. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
59 lines
2.3 KiB
YAML
59 lines
2.3 KiB
YAML
# Nazwa projektu na sztywno: bez tego Compose bierze ja z nazwy katalogu ("app"),
|
|
# a na serwerze kazda aplikacja siedzi w katalogu o tej samej nazwie - komenda bez -p
|
|
# trafialaby wtedy w stack innej aplikacji.
|
|
name: polskalokalnie
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB:-polskalokalnie}
|
|
POSTGRES_USER: ${POSTGRES_USER:-polskalokalnie}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-polskalokalnie_dev}
|
|
ports:
|
|
- "${POSTGRES_BIND_ADDRESS:-127.0.0.1}:5432:5432"
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-polskalokalnie} -d ${POSTGRES_DB:-polskalokalnie}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
backend:
|
|
build:
|
|
context: ./backend
|
|
environment:
|
|
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/${POSTGRES_DB:-polskalokalnie}
|
|
SPRING_DATASOURCE_USERNAME: ${POSTGRES_USER:-polskalokalnie}
|
|
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD:-polskalokalnie_dev}
|
|
SPRING_JPA_HIBERNATE_DDL_AUTO: ${SPRING_JPA_HIBERNATE_DDL_AUTO:-update}
|
|
# Bez tych zmiennych backend bierze wartosci domyslne z application.yml, wiec login i haslo
|
|
# administratora ustawione w .env nie mialy zadnego wplywu na dzialajaca aplikacje.
|
|
APP_ADMIN_EMAIL: ${APP_ADMIN_EMAIL:-admin@softspm.com}
|
|
APP_ADMIN_PASSWORD: ${APP_ADMIN_PASSWORD:-Admin123!}
|
|
APP_ADMIN_NAME: ${APP_ADMIN_NAME:-Administrator Polska Lokalnie}
|
|
# true = przy starcie ustaw haslo administratora na APP_ADMIN_PASSWORD (odzyskanie dostepu).
|
|
APP_ADMIN_RESET_PASSWORD: ${APP_ADMIN_RESET_PASSWORD:-false}
|
|
# Sekret podpisujacy tokeny sesji. Domyslna wartosc jest jawna w repozytorium - w produkcji
|
|
# musi byc wlasna, inaczej kazdy moze wystawic sobie token administratora.
|
|
APP_JWT_SECRET: ${APP_JWT_SECRET:-local-dev-secret-change-me-please-32chars-min}
|
|
APP_PUBLIC_BASE_URL: ${APP_PUBLIC_BASE_URL:-http://localhost}
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
ports:
|
|
- "${BACKEND_BIND_ADDRESS:-127.0.0.1}:8080:8080"
|
|
|
|
web:
|
|
build:
|
|
context: .
|
|
dockerfile: nginx/Dockerfile
|
|
depends_on:
|
|
- backend
|
|
ports:
|
|
- "${WEB_BIND_ADDRESS:-0.0.0.0}:80:80"
|
|
|
|
volumes:
|
|
postgres-data:
|