Files
keila-cloudron/Dockerfile
2025-06-20 07:56:11 -06:00

43 lines
1.2 KiB
Docker

FROM cloudron/base:4.2.0
# Install dependencies
RUN mkdir -p /app/code /app/data
WORKDIR /app/code
# Install Elixir and dependencies
RUN curl -fSL https://github.com/elixir-lang/elixir/releases/download/v1.15.7/elixir-otp-26.zip -o elixir.zip \
&& unzip elixir.zip -d /opt/elixir \
&& rm elixir.zip \
&& ln -s /opt/elixir/bin/* /usr/local/bin/ \
&& apt-get update \
&& 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
ENV PATH="/opt/elixir/bin:$PATH"
# 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"]