diff --git a/Dockerfile b/Dockerfile index fb22f11..28dda1f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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 diff --git a/keila-wrapper.sh b/keila-wrapper.sh new file mode 100644 index 0000000..5bc1d99 --- /dev/null +++ b/keila-wrapper.sh @@ -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 \ + "$@" \ No newline at end of file diff --git a/start.sh b/start.sh index b67ab64..e616edf 100644 --- a/start.sh +++ b/start.sh @@ -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"