diff --git a/localai-p2p-worker/Dockerfile b/localai-p2p-worker/Dockerfile index 83fa4d3..25b987f 100644 --- a/localai-p2p-worker/Dockerfile +++ b/localai-p2p-worker/Dockerfile @@ -1,17 +1,55 @@ -# Utiliser la base Ubuntu Home Assistant -ARG BUILD_FROM=ghcr.io/hassio-addons/ubuntu-base:9.0.1 -FROM ${BUILD_FROM} +# Utiliser l'image LocalAI officielle comme base +FROM localai/localai:latest-cpu # Set shell SHELL ["/bin/bash", "-o", "pipefail", "-c"] -# Installer LocalAI +# Installer bashio et s6-overlay pour Home Assistant +ARG BASHIO_VERSION="v0.17.0" +ARG S6_OVERLAY_VERSION="3.2.1.0" +ARG BUILD_ARCH=amd64 + RUN \ - curl -L -o /tmp/localai.tar.gz \ - "https://github.com/mudler/LocalAI/releases/download/v2.22.1/local-ai-Linux-x86_64.tar.gz" \ - && tar -xzf /tmp/localai.tar.gz -C /usr/local/bin/ \ - && chmod +x /usr/local/bin/local-ai \ - && rm /tmp/localai.tar.gz + apt-get update \ + && apt-get install -y --no-install-recommends \ + ca-certificates \ + curl \ + jq \ + xz-utils \ + \ + && S6_ARCH="${BUILD_ARCH}" \ + && if [ "${BUILD_ARCH}" = "i386" ]; then S6_ARCH="i686"; \ + elif [ "${BUILD_ARCH}" = "amd64" ]; then S6_ARCH="x86_64"; \ + elif [ "${BUILD_ARCH}" = "armv7" ]; then S6_ARCH="arm"; fi \ + \ + && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz" \ + | tar -C / -Jxpf - \ + && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_ARCH}.tar.xz" \ + | tar -C / -Jxpf - \ + && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz" \ + | tar -C / -Jxpf - \ + && curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz" \ + | tar -C / -Jxpf - \ + \ + && mkdir -p /etc/fix-attrs.d \ + && mkdir -p /etc/services.d \ + \ + && curl -J -L -o /tmp/bashio.tar.gz \ + "https://github.com/hassio-addons/bashio/archive/${BASHIO_VERSION}.tar.gz" \ + && mkdir /tmp/bashio \ + && tar zxvf /tmp/bashio.tar.gz --strip 1 -C /tmp/bashio \ + && mv /tmp/bashio/lib /usr/lib/bashio \ + && ln -s /usr/lib/bashio/bashio /usr/bin/bashio \ + \ + && apt-get purge -y --auto-remove xz-utils \ + && apt-get clean \ + && rm -rf /tmp/* /var/lib/apt/lists/* + +# Variables d'environnement pour s6 +ENV \ + S6_BEHAVIOUR_IF_STAGE2_FAILS=2 \ + S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0 \ + S6_CMD_WAIT_FOR_SERVICES=1 # Variables d'environnement pour LocalAI ENV LOCALAI_P2P="true" @@ -26,6 +64,9 @@ RUN mkdir -p /etc/services.d/localai COPY run.sh /etc/services.d/localai/run RUN chmod +x /etc/services.d/localai/run +# Entrypoint s6 +ENTRYPOINT ["/init"] + # Build arguments ARG BUILD_DATE ARG BUILD_REF diff --git a/localai-p2p-worker/config.yaml b/localai-p2p-worker/config.yaml index 0bf4fbb..0544581 100644 --- a/localai-p2p-worker/config.yaml +++ b/localai-p2p-worker/config.yaml @@ -1,5 +1,5 @@ name: "LocalAI P2P Worker" -version: "1.0.4.8" +version: "1.0.4.9" slug: "localai-p2p-worker" description: "LocalAI P2P federation worker node" arch: diff --git a/localai-p2p-worker/run.sh b/localai-p2p-worker/run.sh index 8c45a07..fe190cd 100644 --- a/localai-p2p-worker/run.sh +++ b/localai-p2p-worker/run.sh @@ -56,7 +56,7 @@ fi # Lancer LocalAI bashio::log.info "Starting LocalAI with models path: ${MODELS_PATH}" -exec /usr/local/bin/local-ai run \ +exec /build/local-ai run \ --models-path="${MODELS_PATH}" \ --threads="${THREADS}" \ --address="0.0.0.0:8080" \