WSL 도커 전환과 trixie-slim 로컬 실행 복구 반영
This commit is contained in:
@@ -515,9 +515,150 @@
|
||||
#### 해결/결론
|
||||
- Baron SSO 로컬 실행 스택이 브라우저 접속 가능한 상태까지 도달함
|
||||
|
||||
---
|
||||
|
||||
### 단계 14. Docker Desktop 제거 후 WSL Docker 환경 재점검
|
||||
|
||||
#### 사용자 지시
|
||||
- 기존 Docker Desktop을 제거하고 WSL에 Docker를 설치했으니 다시 작업을 이어가 달라는 요청
|
||||
|
||||
#### 수행한 작업
|
||||
- Windows PowerShell과 WSL Ubuntu 양쪽에서 Docker CLI/엔진 상태를 재확인함
|
||||
- 기존 Baron SSO 관련 컨테이너, 네트워크, 볼륨 존재 여부를 점검함
|
||||
- 저장소 내부 `.env`, 생성된 auth config, compose 파일은 그대로 유지되는지 확인함
|
||||
|
||||
#### 확인 결과
|
||||
- Windows PowerShell 기준으로는 `docker`가 PATH에 없어 직접 실행되지 않았음
|
||||
- WSL Ubuntu 내부에는 `/usr/bin/docker`가 존재했고 Docker 엔진도 정상 응답했음
|
||||
- 다만 새 WSL Docker 엔진에는 기존 Baron SSO 컨테이너/네트워크가 남아 있지 않았음
|
||||
- 저장소 내부의 `.env`, `config/.generated/auth-config.env`, 렌더된 Ory 설정 파일은 유지되고 있었음
|
||||
|
||||
#### 문제점
|
||||
- 런타임 리소스는 초기화되었지만 저장소 설정 파일은 남아 있어, 환경 자체를 다시 만드는 것이 아니라 WSL 엔진 기준으로 stack만 재기동해야 하는 상태였음
|
||||
|
||||
#### 확인 방법
|
||||
- PowerShell과 WSL에서 각각 Docker 명령 실행 가능 여부 확인
|
||||
- `docker ps -a`, `docker network ls`로 기존 리소스 상태 점검
|
||||
|
||||
#### 해결/결론
|
||||
- 이후 작업은 Windows Docker Desktop 기준이 아니라 WSL Ubuntu 내부 Docker 엔진 기준으로 진행하기로 정리함
|
||||
|
||||
---
|
||||
|
||||
### 단계 15. Debian trixie-slim 기반 이미지 정책 반영
|
||||
|
||||
#### 사용자 지시
|
||||
- Docker를 Debian trixie (slim) 베이스 이미지 기반으로 맞출 수 있는 부분은 반영해 달라는 요청
|
||||
|
||||
#### 수행한 작업
|
||||
- 저장소 내 커스텀 이미지 Dockerfile과 helper 서비스 이미지를 검토함
|
||||
- 외부 공식 이미지와 저장소 내부에서 직접 빌드하는 이미지를 구분해 수정 범위를 정함
|
||||
- backend, gateway, adminfront, devfront, orgfront, userfront 및 일부 helper 컨테이너를 trixie/trixie-slim 기반으로 조정함
|
||||
- userfront의 기본 빌드 타깃을 production으로 사용하도록 `.env.sample` 정책도 맞춤
|
||||
|
||||
#### 확인 결과
|
||||
- 다음 커스텀 이미지들은 Debian trixie 또는 trixie-slim 기반으로 전환 가능했음
|
||||
- `backend/Dockerfile`
|
||||
- `gateway/Dockerfile`
|
||||
- `adminfront/Dockerfile`
|
||||
- `devfront/Dockerfile`
|
||||
- `orgfront/Dockerfile`
|
||||
- `userfront/Dockerfile`
|
||||
- helper 서비스도 다음과 같이 조정함
|
||||
- `compose.ory.yaml`의 `oathkeeper_logs_init`, `ory_stack_check`
|
||||
- `docker-compose.yaml`의 `infra_check`
|
||||
- 반면 다음 외부 공식 이미지는 저장소 안에서 베이스 OS를 직접 통제할 수 없었음
|
||||
- `postgres`
|
||||
- `redis`
|
||||
- `clickhouse/clickhouse-server`
|
||||
- `oryd/*`
|
||||
- `ghcr.io/cirruslabs/flutter`
|
||||
|
||||
#### 문제점
|
||||
- Alpine 전용 패키지 설치 명령과 Nginx 설정 경로를 Debian 계열에 맞게 바꿔야 했음
|
||||
- userfront의 기존 Brotli 설정은 Debian 패키지 nginx 기본 구성과 맞지 않았음
|
||||
|
||||
#### 확인 방법
|
||||
- 관련 Dockerfile 및 compose 설정 검토
|
||||
- `docker compose config`와 실제 이미지 빌드로 변경 타당성 확인
|
||||
|
||||
#### 해결
|
||||
- Alpine 기반 `apk` 사용 구문을 `apt-get` 기반으로 변경
|
||||
- Debian nginx 경로에 맞게 userfront 설정 파일 복사 위치를 `/etc/nginx/conf.d/default.conf`로 조정
|
||||
- `userfront/nginx.conf`에서 Debian 기본 nginx와 맞지 않는 Brotli 설정 제거
|
||||
- healthcheck에 필요한 도구를 포함할 수 있도록 Debian 패키지 설치 구성 정리
|
||||
|
||||
#### 검증 결과
|
||||
- WSL Docker 기준으로 커스텀 이미지 빌드 성공 확인
|
||||
- 주요 빌드 대상:
|
||||
- `baron-sso-backend`
|
||||
- `baron-sso-gateway`
|
||||
- `baron-sso-adminfront`
|
||||
- `baron-sso-devfront`
|
||||
- `baron-sso-orgfront`
|
||||
- `baron-sso-userfront`
|
||||
|
||||
#### 해결/결론
|
||||
- 저장소 내부에서 제어 가능한 범위에 대해서는 Debian trixie-slim 정책을 반영했고, 외부 공식 이미지는 예외로 유지함
|
||||
|
||||
---
|
||||
|
||||
### 단계 16. WSL Docker 기준 전체 stack 복구 및 최종 정상화
|
||||
|
||||
#### 사용자 지시
|
||||
- trixie-slim 반영 이후 실제 기동까지 계속 진행해 달라는 요청
|
||||
|
||||
#### 수행한 작업
|
||||
- WSL Docker 엔진에 Baron SSO 외부 네트워크를 재생성함
|
||||
- infra + Ory stack, app stack을 WSL 기준으로 다시 기동함
|
||||
- 기동 중 실패 컨테이너 로그와 health 상태를 점검하고 문제를 국소 수정함
|
||||
|
||||
#### 확인 결과
|
||||
- 초기 재기동 시 `ory_clickhouse`가 시작 직후 종료됨
|
||||
- `baron_userfront`, `baron_gateway`는 실제 응답은 가능했지만 healthcheck가 `unhealthy` 상태였음
|
||||
- 원인 분석 결과:
|
||||
- `docker/ory/clickhouse/init.sql`의 TTL 식이 ClickHouse 24.6에서 `DateTime64(3)`와 호환되지 않았음
|
||||
- Debian 기반으로 바뀐 `gateway`, `userfront` 이미지에는 healthcheck가 사용하는 `wget`이 빠져 있었음
|
||||
|
||||
#### 문제점
|
||||
- Ory 로그 저장소 초기화 SQL이 새 ClickHouse 버전 제약과 맞지 않아 Ory용 ClickHouse가 안정적으로 올라오지 못했음
|
||||
- gateway/userfront는 서비스 자체는 떠 있었지만 healthcheck 도구 부재 때문에 compose 상에서 비정상으로 표시됐음
|
||||
|
||||
#### 확인 방법
|
||||
- `docker logs ory_clickhouse`
|
||||
- `docker inspect baron_gateway`, `docker inspect baron_userfront`
|
||||
- `Invoke-WebRequest http://localhost:5000`
|
||||
- WSL 기준 `docker ps` 상태 확인
|
||||
|
||||
#### 해결
|
||||
- `docker/ory/clickhouse/init.sql`의 TTL 식을 `TTL toDateTime(timestamp) + INTERVAL 30 DAY`로 수정
|
||||
- `gateway/Dockerfile`, `userfront/Dockerfile`에 `wget` 설치를 추가
|
||||
- 수정된 이미지/서비스만 다시 빌드 및 재기동하여 영향 범위를 최소화함
|
||||
|
||||
#### 검증 결과
|
||||
- 최종 컨테이너 상태 확인:
|
||||
- `baron_gateway` healthy
|
||||
- `baron_userfront` healthy
|
||||
- `baron_backend` healthy
|
||||
- `ory_clickhouse` running
|
||||
- `ory_hydra`, `ory_keto`, `ory_kratos`, `ory_oathkeeper`, `ory_vector` 정상 실행
|
||||
- HTTP 응답 코드 확인 결과
|
||||
- `http://localhost:5000` -> `200`
|
||||
- `http://localhost:5173` -> `200`
|
||||
- `http://localhost:5174` -> `200`
|
||||
- `http://localhost:5175` -> `200`
|
||||
|
||||
#### 추가 확인 내용
|
||||
- `http://localhost:4457/health/alive`는 `404`를 반환했으며, 이는 public proxy 포트가 일반 앱 health endpoint를 그대로 노출하는 용도가 아님을 보여줌
|
||||
- Baron/Ory 주요 서비스는 WSL Docker 기준으로 다시 정상화됨
|
||||
|
||||
#### 해결/결론
|
||||
- WSL Docker와 Debian trixie-slim 반영 이후에도 Baron SSO 로컬 실행 스택을 다시 브라우저 접속 가능한 상태까지 복구 완료함
|
||||
|
||||
## 4. 현재까지 생성/변경된 주요 파일
|
||||
|
||||
- `docs/baronsso_structure_analysis.md`
|
||||
- `docs/baronsso_docker_container_roles.md`
|
||||
- `.env`
|
||||
- `config/.generated/auth-config.env`
|
||||
- `config/.generated/ory/kratos/kratos.yml`
|
||||
@@ -529,6 +670,14 @@
|
||||
- `compose.ory.yaml`
|
||||
- `docker-compose.yaml`
|
||||
- `.env.sample`
|
||||
- `backend/Dockerfile`
|
||||
- `gateway/Dockerfile`
|
||||
- `adminfront/Dockerfile`
|
||||
- `devfront/Dockerfile`
|
||||
- `orgfront/Dockerfile`
|
||||
- `userfront/Dockerfile`
|
||||
- `userfront/nginx.conf`
|
||||
- `docker/ory/clickhouse/init.sql`
|
||||
|
||||
## 5. 현재까지 확인된 주요 문제 목록
|
||||
|
||||
@@ -549,6 +698,9 @@
|
||||
- `config/.generated/ory/oathkeeper` 산출물 누락 시 Oathkeeper 시작 실패
|
||||
- Kratos allowed return URLs 렌더링 값 오류
|
||||
- Hydra system secret 길이 부족 오류
|
||||
- Docker Desktop 제거 후 Windows 기준 `docker` PATH와 WSL Docker 엔진 기준 실행 환경이 분리됨
|
||||
- ClickHouse 24.6에서 Ory init SQL의 TTL 식이 `DateTime64(3)`와 호환되지 않았음
|
||||
- Debian trixie-slim 전환 후 gateway/userfront healthcheck에 필요한 `wget`이 누락되었음
|
||||
|
||||
### 5.4 현재 남아 있는 참고 사항
|
||||
- gateway는 userfront가 떠 있기 전에는 unhealthy가 될 수 있음
|
||||
@@ -570,6 +722,10 @@
|
||||
- backend DB 포트 오설정 수정 완료
|
||||
- app stack 기동 완료
|
||||
- localhost 브라우저 진입 주소 응답 확인 완료
|
||||
- WSL Docker 기준 런타임 재기동 및 네트워크 복구 완료
|
||||
- Debian trixie-slim 기반 커스텀 이미지 전환 완료
|
||||
- ClickHouse TTL 호환성 수정 완료
|
||||
- gateway/userfront healthcheck 정상화 완료
|
||||
|
||||
## 7. 현재 미해결 항목
|
||||
|
||||
@@ -585,4 +741,4 @@
|
||||
|
||||
## 9. 최종 요약
|
||||
|
||||
이번 작업에서는 Baron SSO 저장소 구조 분석과 문서화에서 출발해, 로컬 `.env` 및 auth config 생성, Docker 네트워크 준비, infra + Ory stack 기동, app stack 기동, 그리고 브라우저 접속 검증까지 순차적으로 완료했습니다. 진행 중 Docker Desktop 재시작 이후 레지스트리 접근 문제는 해소되었고, 이후에는 이미지 태그 호환성 문제, Ory 생성물 누락, Kratos/Hydra 설정 검증 오류, backend DB 포트 오설정 문제가 순차적으로 드러났습니다. 각 문제는 로그와 렌더 결과를 기준으로 원인을 확인한 뒤 태그 조정, 설정 재생성, 환경값 수정, compose 환경변수 보정으로 해결했습니다. 최종적으로 `http://localhost:5000`, `http://localhost:5173`, `http://localhost:5174`, `http://localhost:5175`가 모두 `200` 응답을 반환하는 상태까지 도달했습니다.
|
||||
이번 작업에서는 Baron SSO 저장소 구조 분석과 문서화에서 출발해, 로컬 `.env` 및 auth config 생성, Docker 네트워크 준비, infra + Ory stack 기동, app stack 기동, 브라우저 접속 검증, 이후 WSL Docker 환경 전환과 Debian trixie-slim 기반 이미지 정책 반영까지 순차적으로 완료했습니다. 진행 중에는 Docker Desktop 재시작 이후 레지스트리 접근 문제, 이미지 태그 호환성 문제, Ory 생성물 누락, Kratos/Hydra 설정 검증 오류, backend DB 포트 오설정, WSL 전환 후 런타임 리소스 재생성, ClickHouse TTL 호환성 문제, gateway/userfront healthcheck 도구 누락 문제가 순차적으로 드러났습니다. 각 문제는 로그, compose 설정, 렌더 결과, 실제 HTTP 응답을 기준으로 원인을 확인한 뒤 태그 조정, 설정 재생성, Dockerfile 수정, compose 환경변수 보정, 국소 재기동으로 해결했습니다. 최종적으로 WSL Docker 기준에서도 `http://localhost:5000`, `http://localhost:5173`, `http://localhost:5174`, `http://localhost:5175`가 모두 `200` 응답을 반환하는 상태까지 복구했습니다.
|
||||
Reference in New Issue
Block a user