Integrate LuaJIT as an optional runtime for better performance, with a fallback to standard Lua 5.4. Update Dockerfile to install LuaJIT and create a wrapper script for execution. Enhance network module with socket fallback support and update README to reflect these changes and configuration options.
51 lines
1.9 KiB
Docker
51 lines
1.9 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM alpine:3.20
|
|
|
|
# Install minimal tooling
|
|
RUN apk add --no-cache \
|
|
--repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing wol \
|
|
&& apk add --no-cache bash curl ca-certificates docker-cli lua5.4 lua5.4-socket luajit luajit-dev openssh-client netcat-openbsd
|
|
|
|
# Create the ssh directory
|
|
RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh
|
|
|
|
# ssh-add ssh key from env var but do not keep env var around
|
|
ARG SSH_PRIVATE_KEY
|
|
ARG SSH_PUBLIC_KEY
|
|
ARG OLLAMA_HOST
|
|
ARG OLLAMA_PORT
|
|
ARG SINCE
|
|
RUN echo "$SSH_PRIVATE_KEY" > /root/.ssh/id_rsa && \
|
|
echo "$SSH_PUBLIC_KEY" > /root/.ssh/id_rsa.pub && \
|
|
chmod 600 /root/.ssh/id_rsa && \
|
|
chmod 644 /root/.ssh/id_rsa.pub && \
|
|
unset SSH_PRIVATE_KEY && unset SSH_PUBLIC_KEY
|
|
# Prepare known_hosts and try to pre-fetch host key (non-fatal if unreachable at build time)
|
|
RUN touch /root/.ssh/known_hosts && chmod 600 /root/.ssh/known_hosts
|
|
RUN ssh-keyscan -T 5 -H "$OLLAMA_HOST" >> /root/.ssh/known_hosts || true
|
|
|
|
# Copy script
|
|
WORKDIR /app
|
|
COPY scripts/* .
|
|
|
|
# Create a wrapper script to choose between lua5.4 and luajit
|
|
RUN echo '#!/bin/sh' > /app/run-lua.sh && \
|
|
echo 'if [ "$USE_LUAJIT" = "true" ]; then' >> /app/run-lua.sh && \
|
|
echo ' echo "Using LuaJIT for better performance"' >> /app/run-lua.sh && \
|
|
echo ' exec luajit /app/auto-boot-ollama-host.lua "$@"' >> /app/run-lua.sh && \
|
|
echo 'else' >> /app/run-lua.sh && \
|
|
echo ' echo "Using standard Lua 5.4"' >> /app/run-lua.sh && \
|
|
echo ' exec lua5.4 /app/auto-boot-ollama-host.lua "$@"' >> /app/run-lua.sh && \
|
|
echo 'fi' >> /app/run-lua.sh && \
|
|
chmod +x /app/run-lua.sh
|
|
|
|
#COPY scripts/auto-boot-ollama-host.sh /usr/local/bin/auto-boot-ollama-host.sh
|
|
#RUN chmod +x /usr/local/bin/auto-boot-ollama-host.sh
|
|
|
|
# Environment defaults (can be overridden by compose/Komodo)
|
|
ENV CONTAINER_NAME=paperless-ai \
|
|
OLLAMA_HOST=${OLLAMA_HOST} \
|
|
OLLAMA_PORT=${OLLAMA_PORT} \
|
|
SINCE=${SINCE:-0s}
|
|
|
|
ENTRYPOINT ["/app/run-lua.sh"] |