BBahmni 한국어 매뉴얼검색
한국어 번역 완료
한국어English

일반 문제 해결 가이드(Docker)

참고: 아래에는 Docker에서 Bahmni를 실행할 때 흔히 발생하는 몇 가지 문제가 정리되어 있습니다. 다른 문제가 발생하거나 여기에 제시된 단계로 해결되지 않으면 Bahmni Slack의 #community 채널에 질문해 주세요.

Docker 서비스와 컨테이너를 점검할 때 사용하는 로그 조회, 실행 상태 확인, 컨테이너 셸 접속, 개별 서비스 시작 및 전체 초기화 명령입니다. 전체 초기화는 모든 Docker 이미지와 볼륨(데이터베이스)을 삭제하므로, DB를 유지하려면 볼륨 삭제 단계를 제외하세요.

How to view the logs of any container or service -f

# Examples

# openmrs logs

docker-compose logs openmrs -f

# reports logs

docker-compose logs reports -f

# crater logs

docker-compose logs crater-php -f

# apache web proxy logs

docker-compose logs bahmni-web -f

# apache httpd logs

docker-compose logs proxy -f]]>To see all the running services / containersTo ssh into a running container /bin/bash

# e.g. To ssh into openmrs container

docker-compose exec openmrs /bin/bash]]>To start a single serviceTo RESET and CLEAN everything and start againThe following commands will delete ALL docker images and volumes (databases) on your machine. You can choose to leave volumes as-is, if you want the DBs to remain as-is.

docker-compose logs <service-name> -f

# Examples
# openmrs logs
docker-compose logs openmrs -f 
# reports logs
docker-compose logs reports -f
# crater logs
docker-compose logs crater-php -f
# apache web proxy logs
docker-compose logs bahmni-web -f
# apache httpd logs
docker-compose logs proxy -f
docker ps
# Or
docker-compose ps
# Command: docker-compose exec <service_name> /bin/bash

# e.g. To ssh into openmrs container
docker-compose exec openmrs /bin/bash
# For instance to start "reports" service
docker compose start reports

# To restart a service which is already running. e.g "crater-atomfeed"
docker compose  restart crater-atomfeed

환자 문서, implementer-interface 또는 일부 Bahmni 서비스에 접근할 때 404 오류가 발생하는 경우: 배포 과정에서 컨테이너가 다시 생성되면 이 문제가 발생할 수 있습니다. 컨테이너를 재생성할 때 Docker 네트워크가 내부 컨테이너에 다른 IP 주소를 할당할 수 있으며, 그 결과 프록시 서비스가 수신한 요청을 올바르게 전달하지 못할 수 있습니다.

따라서 배포 후 컨테이너가 재생성될 때마다 잘못된 프록시 전달로 인한 오류를 방지하도록 다음 명령으로 프록시 서비스를 재시작하는 것이 좋습니다. 배포한 버전에 따라 bahmni-lite 또는 bahmni-standard 디렉터리에서 이 명령을 실행하십시오.

환경에 CI/CD 기반 배포를 사용한다면 워크플로 작업에 이 명령을 추가하고 docker compose up을 실행하는 것이 좋습니다. 예시는 여기를 참조하십시오.관련 문서: here

Bahmni UI가 계속 로딩되는 경우

  • OpenMRS 서비스가 시작 및 초기화되지 않았기 때문일 수 있습니다. OpenMRS가 완전히 부팅될 때까지 5~10분 기다리십시오. https://localhost/openmrs 에 접속해 OpenMRS가 실행 중인지 확인합니다. docker ps를 실행해 컨테이너 상태를 확인합니다. OpenMRS 로그를 확인해 준비가 끝났는지 살펴봅니다. 준비가 완료되면 다음 메시지가 표시되어야 합니다.
관련 문서: https://localhost/openmrs

Bahmni UI 로그인 시 OpenMRS 서비스 오류가 발생하는 경우: Bahmni EMR UI에 로그인할 때 ‘The OpenMRS service is currently unavailable. Please check if the service is started and refresh the page once it up.’ 오류가 표시된다면 OpenMRS가 실행되지 않은 것일 수 있습니다. 다음 단계를 수행하십시오.

  1. https://<ip>/openmrs/ 로 이동합니다(OpenMRS Admin UI 홈 페이지가 열려야 합니다). 오류가 발생한다면 openmrs 서비스가 실행 중이 아닐 가능성이 있으므로 서비스를 확인하고 시작합니다. OpenMRS Admin UI에 유효한 사용자 정보(예: superman / Admin123)로 로그인합니다. OpenMRS에서 로그아웃합니다. Bahmni EMR UI 로그인 페이지(https://<IP>/bahmni/home/)를 다시 엽니다. 이제 정상적으로 로드되어야 합니다. 이 오류는 Bahmni UI에 처음 접근할 때만 나타나야 하며 쿠키 문제와 관련될 수 있습니다. 쿠키와 브라우저 캐시를 지우거나 시크릿 모드에서 접속해 쿠키/캐시 문제인지 확인할 수도 있습니다.

OpenMRS에서 프록시 오류가 발생하는 경우

  • OpenMRS 서비스가 시작 및 초기화되지 않았기 때문일 수 있습니다. OpenMRS가 완전히 부팅될 때까지 5~10분 기다리십시오. docker ps를 실행해 컨테이너 상태를 확인합니다. docker compose logs openmrs -f를 실행해 로그를 확인합니다.

Bahmni와 OpenMRS는 실행 중이지만 Bahmni EMR UI에서 데이터를 입력하면 오류가 발생하는 경우

  • OpenMRS에서 검색 인덱스를 생성했는지 확인하십시오(최초 한 번만 설정). 단계는 여기를 참조하십시오.관련 문서: OpenMRS 설정(Docker)

Apple Silicon Mac M1에서 Bahmni Docker 실행하기

  • Docker Desktop과 Rosetta 2가 설치되어 있는지 확인하십시오. 자세한 내용은 여기를 참조하십시오. 현재 arm64 이미지를 사용할 수 없는 craterdb, crater-atomfeed-db, reportsdb 서비스에 대해 Bahmni docker-compose.yml 파일에 다음 줄을 추가합니다.관련 문서: See here

OpenMRS 로그의 Request Header too Large 예외

OpenMRS 로그에 이 예외가 표시되고 Bahmni EMR UI, 특히 Orders 탭을 열 때 오류가 발생한다면 다음 문제 때문일 수 있습니다.

  1. 브라우저 시크릿 모드에서도 문제가 지속되는지 확인합니다. 시크릿 모드에서는 확장 기능이 추가 헤더를 보내지 않아 오류가 발생하지 않을 수 있습니다. 해결 절차: https://stackoverflow.com/questions/39720422/java-tomcat-request-header-is-too-large
관련 문서: https://stackoverflow.com/questions/39720422/java-tomcat-request-header-is-too-large
# ssh into the openmrs container
docker-compose exec openmrs /bin/bash
cd /usr/local/tomcat/conf/
vi server.xml
# Add the maxHttpHeaderSize="65536" attribute to node which says: <Connector port="8080" .... > (Ensure you add it to the node which is NOT commented out)
# Now save the server.xml (<esc> :wq <enter>)
exit
# Now restart the openmrs container

원격 시스템에서 Crater에 접근할 수 없음

Crater 구성 요소들이 서로 통신하려면 별도의 전용 도메인이 필요합니다. 다른 Bahmni 서비스처럼 Proxy 이미지로 요청을 라우팅하여 <domain>/crater 형태의 하위 경로를 만들 수 없습니다. 따라서 클라우드 환경에서는 Crater 포트 접근을 허용해야 합니다(예: AWS 보안 그룹 규칙).관련 문서: Proxy imageAWS's security group

Docker의 Crater는 .env 파일의 Crater Environment VariablesCrater-Atomfeed Environment variables 섹션을 수정하여 앱 URL과 포트 등을 구성할 수 있습니다. Docker 실행 안내를 참고하고 .env 파일의 지정 위치에 IP 주소를 입력하세요.관련 문서: Bahmni Lite(Docker)에서 Crater 사용

관리자 모듈에서 CSV 파일 업로드 시 상태 호출 실패

새 Bahmni 인스턴스의 관리자 모듈에서 CSV Upload 섹션에 처음 CSV 파일을 올리면 예외와 오류 메시지가 발생합니다. 업로드 호출과 상태 확인 호출이 실행되지만, 프로그램 호출 성공 여부와 관계없이 상태 호출이 500 오류를 반환하여 UI에 “There was an issue in the server. Please try again.”이 표시됩니다. 새로 고침을 누르면 상태가 해결되고 모든 상태가 UI에 표시됩니다(버그 카드 참조).관련 문서: bug card

JDBC 커넥터로 MySQL DB의 일부 레코드를 갱신할 때 “Zero Date value Prohibited” 예외가 발생할 수 있습니다. MySQL Java Connector는 기본적으로 datetime 필드의 빈 값이나 null을 처리할 때 이 예외를 던집니다. 해결하려면 zeroDateTimeBehavior 구성 속성을 조정합니다. 허용 값은 다음과 같습니다.

  • "exception"(기본값): SQLState S1009인 SQLException을 발생시킵니다.
  • "convertToNull": 날짜 대신 NULL을 반환합니다.
  • "round": 날짜를 가장 가까운 값인 0001-01-01로 반올림합니다.

환자가 Crater의 고객으로 동기화되지 않으면 일반적으로 crater-atomfeed 서비스를 다시 시작해야 합니다. 재시작 후 Atomfeed 서비스 초기화에는 약 2~3분이 걸립니다. 아래 정상 실행 로그 예시를 참고하세요.

Docker에서 Bahmni 실행하기(문제 해결 가이드)

원문 정보

Bahmni Wiki · CC BY-SA 4.0

원문 보기 ↗