Copy Erlang binaries to expected erts directory

This commit is contained in:
Andreas Dueren
2025-06-20 12:21:35 -06:00
parent 0e2b274fff
commit 3f0a5450f4
3 changed files with 27 additions and 9 deletions

View File

@ -15,11 +15,12 @@ COPY --from=pentacent/keila:0.14 /usr/local/bin/escript /usr/local/bin/escript
# Copy configuration files
COPY start.sh /app/code/start.sh
COPY keila-wrapper.sh /app/code/keila-wrapper.sh
COPY supervisor/ /etc/supervisor/conf.d/
COPY nginx.conf /etc/nginx/sites-available/default
# Set permissions
RUN chmod +x /app/code/start.sh && \
RUN chmod +x /app/code/start.sh /app/code/keila-wrapper.sh && \
chown -R cloudron:cloudron /app/code /app/pkg
WORKDIR /app/code

17
keila-wrapper.sh Normal file
View File

@ -0,0 +1,17 @@
#!/bin/bash
# Keila wrapper script that sets up proper Erlang runtime
# Set up environment for Keila
export MIX_ENV=prod
export ERL_LIBS=/usr/local/lib/erlang/lib
# Use system Erlang instead of the embedded one
export PATH="/usr/local/bin:$PATH"
# Run Keila with system Erlang
exec /usr/local/bin/erl -boot_var ERTS_LIB_DIR /usr/local/lib/erlang \
-boot /app/data/keila/releases/0.14.11/start \
-config /app/data/keila/releases/0.14.11/sys.config \
-args_file /app/data/keila/releases/0.14.11/vm.args \
-pa /app/data/keila/lib/*/ebin \
"$@"

View File

@ -52,14 +52,14 @@ if [[ ! -f "/app/data/root_credentials" ]]; then
chmod 600 /app/data/root_credentials
fi
# Fix Erlang runtime path for Keila release
if [[ ! -d "/app/data/keila/erts-14.2.5" ]]; then
echo "==> Setting up Erlang runtime symlink"
# Find the actual erts directory in the system Erlang installation
ERTS_DIR=$(find /usr/local/lib/erlang -name "erts-*" -type d | head -1)
if [[ -n "$ERTS_DIR" ]]; then
ln -sf "$ERTS_DIR" /app/data/keila/erts-14.2.5
fi
# Create Erlang symlinks to fix path issues
echo "==> Setting up Erlang runtime symlinks"
mkdir -p /app/data/keila/erts-14.2.5/bin
ERTS_DIR=$(find /usr/local/lib/erlang -name "erts-*" -type d | head -1)
if [[ -n "$ERTS_DIR" ]]; then
echo "Linking Erlang binaries from: $ERTS_DIR"
cp -r "$ERTS_DIR"/bin/* /app/data/keila/erts-14.2.5/bin/
chown -R cloudron:cloudron /app/data/keila/erts-14.2.5
fi
echo "==> Running database migrations"