Mendix 로 만든 프로그램을 컨테이너 환경에 적용하기 위해서는, 멘딕스 프로그램을 컨테이너 이미지로 작성해야 합니다.
역시 멘딕스! 답게 해당 문서는 잘정리 되어 있습니다.
그럼 문서에 나와있는데로, 따라 해보겠습니다.
0. 준비
docker desktop 과 wsl을 설치합니다.
wsl 내 리눅스 이미지는 필자는 rocky8.8 을 이용했습니다.
1. 샘플 프로그램을 준비하고, Product 레벨로 보안을 변경합니다.
저는 Rapid Develop 실습에서 만드는 LearnNow 프로그램을 대상으로 하겠습니다.
App Security 의 Security level을 Production 으로 하고 에러를 모두 잡아줍니다.
로컬에서 실행후, 정상임을 확인하면 일단 끝 입니다!
2. 멘딕스 도커 빌드 팩 다운로드 및 테스트 쉘 실행
도커빌드팩의 실행 스크립트가 bash 로 되어 있으므로 이번 작업은 wsl 에서 진행합니다.
최신버전의 멘딕스 도커 빌드 팩을 git clone 으로 다운로드 합니다.
버전부분은 현재 v5.0.3 이 최신이었으나, 페이지를 참조해서 설정합니다.
그리고 예제를 빌드하는 쉘까지 실행합니다. ( 아래 참조 )
2024-05-22 수정
v5.0.4 여서 수정하였습니다.
쉘실행시 unzip커맨드 를 사용하니 설치가 안되어 있으면 설치합니다.
dnf install unzip
mendix/docker-mendix-buildpack at latest (github.com)
git clone --branch v5.0.4 --config core.autocrlf=false https://github.com/mendix/docker-mendix-buildpack
cd docker-mendix-buildpack
tests/integrationtest.sh
음.. 현재 기준으로도 오류가 발생하는데, 일단 무시합니다.
3. Mendix 프로젝트를 빌드팩을 이용하여 이미지화
Mendix 프로젝트를 도커 이미지 빌드팩의 홈에 복사 합니다.
ex) C:\Users\cruel\Mendix\LearnNow-main -> C:\study\docker-mendix-buildpack 로 복사
이미지화 대상 프로젝트 위치 C:\study\docker-mendix-buildpack\LearnNow-main
wsl 환경에서 도커 빌드를 실행합니다.
docker build --build-arg BUILD_PATH="{relative-mendix-project-location}" -t {image name} .
ex) docker build --build-arg BUILD_PATH="./LearnNow-main" -t learnnow .
4. 이미지 실행
멘딕스 도커 컨테이너 실행을 참고해서 실행해 줍니다.
Run a Mendix Docker Image | Mendix Documentation
ex) docker run -it -e ADMIN_PASSWORD=암호입력 -e DATABASE_ENDPOINT=postgres://db-user:db암호입력@db-ip:db-port/db-name -p 8080:8080 learnnow
잘됩니다! 굳!