FROM cloudron/base:4.2.0 # Install dependencies RUN mkdir -p /app/code /app/data WORKDIR /app/code # Install Erlang and Elixir from Ubuntu repos RUN apt-get update \ && apt-get install -y erlang elixir \ && apt-get install -y git build-essential cmake nodejs npm postgresql-client \ && rm -rf /var/lib/apt/lists/* # Set environment variables ENV MIX_ENV=prod # Clone and build Keila RUN git clone --depth 1 --branch v0.14.7 https://github.com/pentacent/keila.git . \ && mix local.hex --force \ && mix local.rebar --force \ && mix deps.get --only prod \ && mix deps.compile \ && cd assets && npm ci && npm run deploy && cd .. \ && mix phx.digest \ && mix release # Copy initialization data RUN cp -r _build/prod/rel/keila /tmp/keila-release # Copy start script COPY start.sh /app/code/start.sh COPY nginx.conf /etc/nginx/sites-available/default # Set permissions RUN chmod +x /app/code/start.sh \ && chown -R cloudron:cloudron /app/code /app/data /tmp/keila-release EXPOSE 4000 CMD ["/app/code/start.sh"]