mirror of
https://github.com/nickyeoman/docker-compose-cookbooks.git
synced 2026-09-04 10:56:23 +00:00
added ai combo
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# ===== STAGE 1: Build Dependencies =====
|
||||
FROM debian:trixie-slim AS builder
|
||||
ARG TARGETARCH
|
||||
|
||||
# Install build dependencies
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ca-certificates curl gnupg git build-essential \
|
||||
golang-go nodejs npm \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install opencode from GitHub releases
|
||||
RUN ARCH=${TARGETARCH} \
|
||||
&& if [ "$ARCH" = "amd64" ]; then ARCH="x86_64"; fi \
|
||||
&& curl -fsSL "https://github.com/anomalyco/opencode/releases/latest/download/opencode_linux_${ARCH}.tar.gz" \
|
||||
| tar -xz -C /usr/local/bin opencode \
|
||||
&& chmod +x /usr/local/bin/opencode
|
||||
|
||||
# Build openclaw from source
|
||||
WORKDIR /build/openclaw
|
||||
RUN git clone --depth 1 https://github.com/openclaw/openclaw.git . \
|
||||
&& npm ci \
|
||||
&& npm run build \
|
||||
&& mkdir -p /opt/openclaw \
|
||||
&& cp -r dist/* /opt/openclaw/ \
|
||||
&& cp package.json /opt/openclaw/ \
|
||||
&& cp -r node_modules /opt/openclaw/
|
||||
|
||||
# ===== STAGE 2: Runtime =====
|
||||
FROM debian:trixie-slim
|
||||
|
||||
# Install runtime dependencies
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
supervisor curl ca-certificates tini \
|
||||
&& curl -fsSL https://ollama.com/install.sh | sh \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Install code-server
|
||||
RUN curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone
|
||||
|
||||
# Copy binaries from builder
|
||||
COPY --from=builder /usr/local/bin/opencode /usr/local/bin/opencode
|
||||
COPY --from=builder /opt/openclaw /opt/openclaw
|
||||
|
||||
# Create volume directories
|
||||
RUN mkdir -p \
|
||||
/data/ollama \
|
||||
/config /data /projects \
|
||||
/home/node/.openclaw /home/node/.openclaw/workspace /home/node/.config/openclaw \
|
||||
/data/vscode/data /data/vscode/config
|
||||
|
||||
# Copy supervisor config
|
||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
|
||||
# Copy default opencode config
|
||||
COPY opencode-config.json /config/config.json
|
||||
|
||||
# Set timezone
|
||||
ENV TZ=America/Vancouver
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
# Entrypoint
|
||||
ENTRYPOINT ["tini", "--", "/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
|
||||
Reference in New Issue
Block a user