Building Yottadb docker

70 views
Skip to first unread message

rafi farchi

unread,
Jul 9, 2026, 12:30:30 PMJul 9
to Hardhats
Subject: YottaDB UTF-8 Docker initialization loop: %YDB-E-ZGBLDIRACC / Cannot access global directory (No such file or directory)

Hi everyone,

I am building a Docker environment (Ubuntu 24.04 base) using YottaDB r2.06 UTF-8. The host directory `/home/u0_a410/hybrid_m_eval/m_core` is mounted as a volume into `/app/m_core` inside the container.

My goal is to dynamically generate the global directory file (`ydb.gld`) and database file (`ydb.dat`) on container startup inside the mounted volume if they don't exist yet, using a standard template.

However, I am stuck in a catch-22 loop. No matter what approach I try, when YottaDB launches in Direct Mode (`mumps -direct`), it crashes immediately with:
"%YDB-E-ZGBLDIRACC, Cannot access global directory /app/m_core/ydb.gld. Cannot continue.
%SYSTEM-E-ENO2, No such file or directory"

Here are my environment configurations inside the startup entrypoint script:
export ydb_dist=/usr/local/lib/yottadb/r206/utf8
export LD_LIBRARY_PATH=$ydb_dist:$LD_LIBRARY_PATH
export ydb_gbldir=/app/m_core/ydb.gld
export ydb_routines="/app/m_core( /app/m_core ) $ydb_dist"

The `ydb.gld.template` contains:
; GDE CONFIGURATION FILE
change -region DEFAULT -dynamic=4096 -key=255 -record=4080 -journal=(before,file="/app/m_core/ydb.mjl")
change -segment DEFAULT -file=/app/m_core/ydb.dat -access_method=BG
change -name * -region=DEFAULT

What we have tried so far:
1. Running GDE via stdin inside the entrypoint:
   `mumps -run %GDE < template`
   Result: It fails with `%YDB-E-FILENOTFND, File _GDE.m not found` because in this UTF-8 container setup, the internal utilities seem to behave differently when `ydb_gbldir` points to a missing file.

2. Executing wrapped commands using `ydb -gde < template` or `mupip gencat`:
   Result: The internal `ydb_env_set` script throws a realpath conflict status 1:
   "$ydb_dist="/usr/local/lib/yottadb/r206" has realpath /usr/local/lib/yottadb/r206 but prior $ydb_dist has realpath /usr/local/lib/yottadb/r206/utf8"

3. Changing directory permissions on the host/guest via chmod 777 / chown before running the commands.

It seems that since `ydb_gbldir` is pre-defined and the target file is missing, the MUMPS engine refuses to execute even the maintenance tools (%GDE / MUPIP) to create it under a non-interactive Docker boot layer.

What is the officially recommended way to create a brand new, empty, pre-configured UTF-8 global directory and dat file dynamically during a headless Docker container entrypoint boot?

Thanks in advance!

K.S. Bhaskar

unread,
Jul 9, 2026, 12:41:58 PMJul 9
to Hardhats
In a freshly booted Docker container with no ydb* or gtm* environment variables set, and assuming you installed YottaDB with ydbinstall --utf8 and other options defaulted, run the following:

export ydb_dir=/app/m_core
source /usr/local/etc/ydb_env_set

The above will create an environment if none exists, as well as recover it if needed (e.g., container or host shut down with processes updating the database).

Or just use a Docker container we provide, e.g., see https://yottadb.com/product/get-started/

Regards
- Bhaskar

rafi farchi

unread,
Jul 9, 2026, 3:47:11 PMJul 9
to Hardhats
Hi Bhaskar,
​I wanted to personally thank you for your invaluable help and guidance.
​Following your excellent recommendation, we fully adopted the official YottaDB Docker image and architecture. We successfully integrated it with PostgreSQL 16, and I'm happy to report that both environments are now working together in perfect harmony!
​All the data—including the YottaDB globals and the PostgreSQL databases—is completely persistent, and the dynamic linkage via the SQL gateway is running smoothly.
​Thank you again for steering us in the right direction and for your amazing support.
​Best regards,
Rafi Farchi

K.S. Bhaskar

unread,
Jul 9, 2026, 8:52:48 PMJul 9
to Hardhats
You're welcome, Rafi. I'm glad you have working what you want to have working.

Regards
- Bhaskar

rafi farchi

unread,
Jul 15, 2026, 11:09:48 AMJul 15
to hard...@googlegroups.com
Hi

I hope this email finds you well. First of all, thank you again for your invaluable help with setting up the Docker environment earlier in this journey. 

I wanted to share a quick update: we have officially released the **HybridM v3** Docker image (rafifarchi/hybridm:v3) and shared a post on the Hardhats forum summarizing our approach. 

The core of our implementation is establishing a bi-directional, high-performance C-driven gateway (^SQLAPI). This bridge allows real-time synchronization between transactional MUMPS operations and PostgreSQL. Our goal is to let developers maintain their blistering-fast MUMPS transactional logic while seamlessly leveraging PostgreSQL's modern ecosystem for relational analytics, BI, and web APIs.

We’ve already seen about a dozen immediate pulls on the Docker image, which is exciting, but the forum itself is relatively quiet. 

Since you understand the YottaDB ecosystem inside and out, I wanted to ask for your candid feedback:
1. Did you have a chance to look at the post or the release?
2. From your perspective, does an architectural bridge like HybridM address a real pain point for modernizing legacy MUMPS systems? 
3. Do you see YottaDB users looking for this kind of "best of both worlds" hybrid approach, or is the market leaning in a different direction?

I would highly value your thoughts, even a brief reply. 

Best regards,

Rafi Farchi


בתאריך יום ו׳, 10 ביולי 2026, 03:52, מאת K.S. Bhaskar ‏<ksbh...@gmail.com>:
--
--
http://groups.google.com/group/Hardhats
To unsubscribe, send email to Hardhats+u...@googlegroups.com

---
You received this message because you are subscribed to the Google Groups "Hardhats" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hardhats+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/hardhats/2e79e365-2197-46e0-a21e-2b697e656e4fn%40googlegroups.com.

K.S. Bhaskar

unread,
Jul 15, 2026, 12:37:21 PMJul 15
to Hardhats
Rafi -

The answer to your first question is No, and given my current commitments, unlikely to happen in the near future. So I cannot answer questions 2 & 3.

Regards
- Bhaskar
Reply all
Reply to author
Forward
0 new messages