3.8 KiB
3.8 KiB
EGBIM 로컬 Docker 실행
구성
app: Apache + PHP 8.1db: MariaDB 10.6- 웹 루트: 저장소 루트
/var/www/html - 기본 진입 주소:
http://localhost:8088/egbim/
준비
- Docker 와 Docker Compose 를 사용할 수 있어야 한다.
- 필요하면
.env.docker.example내용을 참고해.env파일을 만든다. - DB 덤프가 있으면
docker/mysql/init/아래에.sql파일로 넣는다. - 기본 로컬 DB명은 운영과 맞춘
egbim이다. - BARON-SSO 를 로컬에서 테스트하려면 BARON 앱 설정에 로컬 Redirect URI 를 추가해야 한다.
실행
docker compose up --build
BARON-SSO 로컬 테스트 설정
.env 에 아래 값을 채운다.
BARON_SSO_CLIENT_ID=<client id>
BARON_SSO_CLIENT_SECRET=<client secret>
BARON_SSO_AUTHORIZE_ENDPOINT=https://app.brsw.kr/oidc/oauth2/auth
BARON_SSO_TOKEN_ENDPOINT=https://app.brsw.kr/oidc/oauth2/token
BARON_SSO_USERINFO_ENDPOINT=https://app.brsw.kr/oidc/userinfo
BARON_SSO_ISSUER=https://app.brsw.kr/oidc
BARON_SSO_REDIRECT_URI=http://localhost:8088/auth/callback
BARON_SSO_SCOPE=openid profile email tenants
BARON_SSO_CLIENT_AUTH_METHOD=basic
BARON_SSO_CLIENT_AUTH_METHOD 는 우선 basic 으로 두고, 토큰 엔드포인트가 invalid_client 를 반환하면 post 로 바꿔 다시 확인한다.
BARON 관리자 화면의 Redirect URI 허용 목록에도 아래 중 하나를 추가한다.
http://localhost:8088/auth/callback
http://eg-bim.com:8088/auth/callback
운영에 등록된 https://eg-bim.com/auth/callback 만 허용되어 있으면 로컬 callback 은 실패한다.
로컬 확인 순서
docker compose up --build -ddocker compose ps로app,db상태 확인- 브라우저에서
http://localhost:8088/egbim/접속 - 로그인 팝업에서
사내 사용자 로그인버튼 클릭 - BARON 로그인 후
http://localhost:8088/auth/callback로 복귀하는지 확인 - 복귀 후
http://localhost:8088/egbim/bbs/descope_qa_list.php로 이동하는지 확인
빠른 점검 URL
- BARON 시작점:
http://localhost:8088/auth/baron_login?site=egbim&return_url=/egbim/bbs/descope_qa_list.php - BARON 콜백:
http://localhost:8088/auth/callback - 국문 Q&A:
http://localhost:8088/egbim/bbs/descope_qa_list.php - 영문 Q&A:
http://localhost:8088/eng/bbs/descope_qa_list.php
문제 발생 시 먼저 볼 항목
- Redirect URI 가 BARON 허용 목록과 정확히 일치하는지 확인
.env값이 비어 있지 않은지 확인- 컨테이너 재기동 전에
.env변경분이 반영되었는지 확인 - callback 경로가
/auth/callback으로 등록되어 있는지 확인 - 브라우저 개발자도구 Network 에서 token endpoint 호출 전 redirect 단계가 정상인지 확인
접속
- 기본:
http://localhost:8080/egbim/ - 기본:
http://localhost:8088/egbim/ - 루트 진입 확인:
http://localhost:8088/
eg-bim.com 도메인으로 로컬 접속하고 싶을 때
hosts 파일에 아래를 추가한다.
127.0.0.1 eg-bim.com
그 다음 아래 주소로 접속한다.
http://eg-bim.com:8088/
로컬 Docker 환경에서는 루트 .htaccess 가 APP_ENV=local 일 때 HTTPS 강제와 운영 리다이렉트를 건너뛴다.
참고
- 앱 컨테이너에서는 DB 호스트를
db로 주입하므로egbim/data/dbconfig.php,eng/data/dbconfig.php는 환경변수가 있으면 그 값을 우선 사용한다. - Docker 기본값은
G5_MYSQL_DB=egbim,G5_MYSQL_USER=egbim이다. - 현재 일부 개별 PHP 스크립트는 여전히
new mysqli('localhost', ...)형태의 하드코딩이 남아 있다. 로그인과 기본 그누보드 흐름은data/dbconfig.php경유라 우선 Docker 부팅에는 문제가 없지만, 업로드/버전 관리 기능은 다음 단계에서 별도 정리가 필요하다.