Odoo 구성(Docker)
Bahmni/odoo-16 이미지는 Odoo v16.0을 기반으로 하며 Bahmni와 통합된 청구 및 재고 관리 시스템 역할을 합니다. 이미지는 bahmni-odoo-modules 저장소에서 GitHub Actions로 빌드됩니다.
제한적으로 지원되는 Odoo 10: Bahmni/odoo-10 이미지는 Odoo v10.0을 기반으로 하며 Bahmni와 통합된 청구 및 재고 관리 시스템 역할을 합니다. 이미지는 odoo-modules 저장소에서 GitHub Actions로 빌드·게시됩니다. Odoo 10은 Odoo 커뮤니티의 지원이 종료되어 버그 수정과 보안 패치 지원이 매우 제한적입니다. Odoo 16으로 마이그레이션하는 것이 좋습니다.
Bahmni/odoo-connect 이미지는 의약품, 검사실 검사, 환자 투약 처방을 Odoo로 가져오는 Atom Feed 동기화를 활성화합니다. 이미지는 openerp-atomfeed-service 저장소에서 GitHub Actions로 빌드·게시됩니다.
이 페이지의 목차
Odoo용 하위 도메인 또는 포트 공개: Odoo는 다른 Bahmni 서비스와 같은 도메인에서 프록시로 라우팅할 수 없습니다. 따라서 8069 포트로 직접 접근하거나 Bahmni와 동일한 공인 IP 주소에 매핑한 하위 도메인으로 접근해야 합니다. Bahmni 인덱스 페이지는 서버 접속 URL을 확인합니다. IP 또는 localhost이면 http://<ip/localhost>:8069로 이동하고 FQDN이면 erp-<your-fqdn>으로 이동합니다. erp 접두사는 구성에서 변경할 수 있습니다. 이 접두사에 맞춰 DNS 제공자에서 도메인을 서버 IP에 연결하는 A 레코드를 만드십시오. 인터넷에 공개되는 운영 시스템에서는 도메인 기반 라우팅과 SSL 인증서 설정을 권장합니다.
Odoo 16 일회성 설정
Bahmni Standard에는 메타데이터가 구성되어 있고 데이터가 하위 시스템과 동기화되므로 Odoo DB는 기본적으로 데이터베이스 백업 이미지로 시작합니다. 일부 호스트에서는 권한 거부 오류로 Odoo 16 시작에 실패할 수 있습니다. 처음 한 번 다음 명령을 실행하십시오.
docker compose exec -it --user root odoo chown -R odoo:odoo /var/lib/odoo/filestore && docker compose restart odoo
Odoo 10 설정
Docker용 Bahmni 릴리스는 bahmni-standard 프로필에서 Odoo 16을 기본 버전으로 제공합니다. Odoo 10은 커뮤니티 지원이 종료되어 버그 수정과 보안 패치 지원이 매우 제한적입니다. Odoo 16으로 마이그레이션하는 것이 좋으며 Odoo 업그레이드 계획에 관한 별도 문서를 참조할 수 있습니다.
Bahmni 맞춤 모듈 및 통합 기능과 함께 Odoo 10을 실행하려면 .env 파일에서 사용자 지정 프로필을 활성화하여 시작할 수 있습니다.
- bahmni-docker/bahmni-standard 저장소에는 odoo-10 프로필이 지정된 odoo-10, odoo-10-db, odoo-10-connect 서비스가 있습니다. .env 파일의 COMPOSE_PROFILES 변수에 odoo-10 프로필을 추가하여 시작할 수 있습니다. 명령줄에서 --profiles 옵션으로 docker compose --profile odoo-10 up -d를 실행할 수도 있습니다. 참고: Odoo 10은 기본적으로 8070 포트에서 시작합니다. 8069 포트를 계속 사용하려면 docker-compose.yml의 odoo-10 서비스 포트 매핑을 변경하십시오.
Odoo 10 일회성 설정
다음 단계는 Odoo를 생성할 때 한 번만 수행하며 Odoo 10을 실행하는 경우에만 적용됩니다.
- 컨테이너가 시작되면 애플리케이션에 로그인합니다. 메뉴 모음에서 Apps로 이동합니다. Bahmni Account 앱을 클릭한 뒤 Upgrade를 클릭합니다. 업그레이드가 끝나 홈 페이지로 이동할 때까지 기다립니다. 이동한 뒤 페이지를 한 번 새로 고칩니다.
이제 Odoo가 정상 작동해야 합니다. 10분 안에 이전 환자 데이터가 Odoo에 나타나지 않으면 ‘Odoo가 이전 환자 데이터를 동기화하지 않음’ 절을 읽으십시오.
환경 구성
Odoo 변수
| Variable Name | Description |
|---|---|
| ODOO_IMAGE_TAG | This value tells which image version to be used for Odoo Application. List of tags can be found at bahmni/odoo-16 - Tags . |
| ODOO_DB_IMAGE_NAME | This value specifies the database image used for Odoo database instance. Defaults to postgres:16 |
| ODOO_DB_HOST | This value specifies the host name for the database to be used by Odoo. |
| ODOO_DB_USER | This value is used as username for Odoo Postgres DB instance. This is also referenced in Odoo application. |
| ODOO_DB_PASSWORD | This value is used as password for Odoo Postgres DB instance. This is also referenced in Odoo application. |
| EXTRA_ADDONS_PATH | When you want to installl an additional addon, you can set the path of the root directory which contains your module directory. |
참고: 위 변수 세트는 Odoo 10 구성에도 제공되며 ODOO 대신 ODOO_10 접두사를 사용합니다.
Odoo Connect 구성
| Variable Name | Description |
|---|---|
| ODOO_CONNECT_IMAGE_TAG | This value tells which image version to be used for Odoo Connect Application. List of tags can be found at bahmni/odoo-connect - Tags . |
Odoo가 이전 환자 데이터를 동기화하지 않음
이전 환자 데이터가 Odoo로 전송되지 않으면 다음 단계를 수행하십시오. Atom Feed 리더가 실패 이벤트의 최대 재시도 횟수(기본 5회)를 이미 소진했을 가능성이 큽니다. 실패 이벤트의 재시도 값을 1로 되돌리면 즉시 동기화할 수 있습니다.
- 로컬 컴퓨터의 bahmni-docker 폴더에서 터미널을 엽니다. docker ps를 실행해 실행 중인 컨테이너 목록을 봅니다. docker container exec -it bahmni-docker_odoodb_1 /bin/bash를 실행하여 Odoo PostgreSQL DB 컨테이너에 연결합니다. 여기서 bahmni-docker_odoodb_1은 Odoo PostgreSQL 컨테이너 이름입니다. psql -Uodoo odoo로 PostgreSQL 콘솔에 연결합니다. Bahmni 데이터베이스 연결에 관한 자세한 내용은 ‘Connecting to various databases’를 참조하십시오. psql 프롬프트에서 select count(*) from failed_events;를 입력하여 실패 이벤트 수를 확인합니다. 이벤트가 하나 이상이면 select id,retries from failed_events;를 실행합니다. 모든 실패 이벤트가 재시도 한도에 도달했는지 확인합니다. update failed_events set retries=1;로 모든 실패 이벤트의 재시도 횟수를 초기화합니다. 약 1분 뒤 모든 실패 이벤트가 처리되고 이전 환자 데이터가 Odoo에 동기화되어야 합니다. 컨테이너를 종료할 때 먼저 \q로 PostgreSQL 셸을 나온 뒤 exit로 PostgreSQL 컨테이너를 중지하지 않고 Bash 셸을 종료합니다.
Odoo에 추가 Addon 로드
Odoo 인스턴스에 추가 addon을 로드하려면 EXTRA_ADDONS_PATH를 모듈이 들어 있는 디렉터리로 설정합니다.
- Odoo가 실행 중이면 docker-compose down으로 중지합니다. 모듈 루트 디렉터리 경로를 EXTRA_ADDONS_PATH 변수에 설정합니다. docker-compose up을 실행해 Odoo 인스턴스를 다시 시작합니다. 애플리케이션에 로그인합니다. 웹의 Settings 페이지에서 Developer Mode를 활성화합니다. Apps 페이지로 이동해 Update Apps List를 클릭합니다. 새 모듈이 목록에 나타나면 설치할 수 있습니다.
참고: Odoo 10에 추가 addon을 넣으려면 .env 파일의 EXTRA_ODOO_10_ADDONS_PATH 값을 변경하십시오.
Bahmni Odoo 모듈 개발 환경 설정
참고: Bahmni Odoo 모듈의 개발 환경을 만들고 모듈을 갱신해야 할 때만 이 단계를 수행하십시오.
- https://github.com/Bahmni/bahmni-odoo-modules 에서 Bahmni/bahmni-odoo-modules 저장소를 복제합니다. bahmni-docker/bahmni-standard 디렉터리에서 docker-compose down -v를 실행해 Bahmni를 중지합니다. .env 파일의 BAHMNI_ODOO_MODULES_PATH 변수에 복제한 디렉터리 경로를 설정하고 Odoo 서비스만 시작하도록 COMPOSE_PROFILE=odoo로 변경합니다. docker-compose.yml에서 odoo 서비스 아래 주석 처리된 볼륨의 주석을 해제합니다. docker-compose up으로 Odoo 서비스를 시작합니다. Odoo 웹의 Settings 페이지에서 Activate the Developer Mode를 클릭합니다. 변경 후에는 Odoo 16이면 docker-compose restart odoo를, Odoo 10이면 docker compose restart odoo-10을 실행합니다. 브라우저의 Apps 메뉴에서 갱신한 앱을 선택하고 Upgrade를 클릭합니다. 변경사항이 나타나지 않으면 마지막 두 단계를 다시 수행하십시오.
참고: 같은 단계로 개발 환경을 구성할 수 있지만 bahmni/odoo-modules를 복제하고 그 경로를 BAHMNI_ODOO_10_MODULES_PATH 변수에 설정해야 합니다.
Bahmni Wiki · CC BY-SA 4.0