- Enduro/X 7.0.12 소스빌드 이미지(-DENABLE_POSTGRES=ON, libndrxxaecpg XA 스위치) - docker-compose: postgres(max_prepared_transactions=100) + endurox app - ECPG XA 서비스 3종: ACQUIRE→RECONCILE→SETTLE (tpservice + EXEC SQL) - 클라이언트 tpbegin/tpcall체인/tpcommit → tmsrv 2PC(prepare/commit) 원자 커밋 - 검증: 서비스 AVAIL, 커밋 row(status=S) psql 확인, 롤백 시 무잔존, pg_prepared_xacts=0 - 규명된 런타임 요건: sysctl fs.mqueue.*, ulimit msgqueue/nofile, XA open-str JSON - docs/architecture.md, README, service-catalog 설계 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
1.1 KiB
Docker
26 lines
1.1 KiB
Docker
# Enduro/X (open-source Tuxedo/ATMI) + ECPG/PostgreSQL client — runnable builder image
|
|
FROM debian:12
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
RUN apt-get update -qq && apt-get install -y -qq \
|
|
build-essential cmake flex bison git \
|
|
libxml2-dev libssl-dev uuid-dev libgpgme-dev \
|
|
libecpg-dev libpq-dev postgresql-server-dev-all \
|
|
postgresql-client \
|
|
procps net-tools vim-tiny ca-certificates curl \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# --- build Enduro/X core from source (tag 7.0.12) ---
|
|
WORKDIR /opt
|
|
RUN git clone --depth 1 --branch 7.0.12 https://github.com/endurox-dev/endurox /opt/endurox-src
|
|
WORKDIR /opt/endurox-src
|
|
# atmitest 서브디렉터리는 생성헤더(t40.h 등) 의존으로 코어 빌드를 깨뜨려 제외 (DISABLETEST가 실제 제외 안 함)
|
|
RUN sed -i -E '/add_subdirectory *\(atmitest/d' CMakeLists.txt
|
|
RUN cmake -DDEFINE_DISABLEDOC=ON -DDEFINE_DISABLETEST=ON -DENABLE_POSTGRES=ON -DCMAKE_INSTALL_PREFIX=/usr/local . \
|
|
&& make -j"$(nproc)" \
|
|
&& make install \
|
|
&& ldconfig
|
|
# runtime env defaults
|
|
ENV NDRX_HOME=/usr/local PATH=/usr/local/bin:$PATH LD_LIBRARY_PATH=/usr/local/lib
|
|
WORKDIR /app
|
|
CMD ["bash"]
|