fix: replace Homebrew with direct installs in Dockerfile
All checks were successful
Build Nanobot OAuth / build (push) Successful in 25m40s
All checks were successful
Build Nanobot OAuth / build (push) Successful in 25m40s
Homebrew refuses to run as root in Docker containers. Replace all brew installs with: - GitHub release binaries (gogcli, goplaces, himalaya, obsidian-cli) - go install (songsee) - npm (gemini-cli) - uv tool (openai-whisper) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@ FROM birdxs/nanobot:latest
|
||||
|
||||
# ── Skill dependencies ──────────────────────────────────────────────
|
||||
|
||||
# APT: ffmpeg (video-frames), jq, tmux, build-essential (for go/brew)
|
||||
# APT: ffmpeg (video-frames, whisper), jq, tmux, build-essential (for go)
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
ffmpeg jq tmux build-essential procps && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
@@ -17,25 +17,39 @@ RUN curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg \
|
||||
RUN curl -fsSL https://go.dev/dl/go1.23.6.linux-amd64.tar.gz | tar -C /usr/local -xzf -
|
||||
ENV PATH="/usr/local/go/bin:/root/go/bin:${PATH}"
|
||||
|
||||
# Go tools: blogwatcher, blu (blucli), gifgrep, sonos (sonoscli), wacli
|
||||
# Go tools: blogwatcher, blu (blucli), gifgrep, sonos (sonoscli), wacli, songsee
|
||||
RUN go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest && \
|
||||
go install github.com/steipete/blucli/cmd/blu@latest && \
|
||||
go install github.com/steipete/gifgrep/cmd/gifgrep@latest && \
|
||||
go install github.com/steipete/sonoscli/cmd/sonos@latest && \
|
||||
go install github.com/steipete/wacli/cmd/wacli@latest
|
||||
go install github.com/steipete/wacli/cmd/wacli@latest && \
|
||||
go install github.com/steipete/songsee/cmd/songsee@latest
|
||||
|
||||
# Homebrew (for tools only available via brew taps)
|
||||
RUN NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
ENV PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:${PATH}"
|
||||
RUN brew tap steipete/tap && \
|
||||
brew install steipete/tap/gogcli steipete/tap/goplaces steipete/tap/songsee \
|
||||
gemini-cli yakitrak/yakitrak/obsidian-cli himalaya openai-whisper
|
||||
# Pre-built binaries from GitHub releases
|
||||
# gogcli (gog)
|
||||
RUN curl -fsSL https://github.com/steipete/gogcli/releases/download/v0.9.0/gogcli_0.9.0_linux_amd64.tar.gz \
|
||||
| tar -xzf - -C /usr/local/bin gog
|
||||
|
||||
# Node tools: oracle
|
||||
RUN npm install -g @steipete/oracle
|
||||
# goplaces
|
||||
RUN curl -fsSL https://github.com/steipete/goplaces/releases/download/v0.2.1/goplaces_0.2.1_linux_amd64.tar.gz \
|
||||
| tar -xzf - -C /usr/local/bin goplaces
|
||||
|
||||
# Python tools: nano-pdf
|
||||
RUN uv tool install nano-pdf
|
||||
# himalaya (email CLI)
|
||||
RUN curl -fsSL https://github.com/pimalaya/himalaya/releases/download/v1.1.0/himalaya.x86_64-linux.tgz \
|
||||
| tar -xzf - -C /usr/local/bin himalaya
|
||||
|
||||
# obsidian-cli (release binary is named notesmd-cli, skill expects obsidian-cli)
|
||||
RUN curl -fsSL -o /tmp/obsidian.tar.gz https://github.com/yakitrak/obsidian-cli/releases/download/v0.3.0/notesmd-cli_0.3.0_linux_amd64.tar.gz && \
|
||||
tar -xzf /tmp/obsidian.tar.gz -C /tmp notesmd-cli && \
|
||||
mv /tmp/notesmd-cli /usr/local/bin/obsidian-cli && \
|
||||
rm /tmp/obsidian.tar.gz
|
||||
|
||||
# Node tools: oracle, gemini-cli
|
||||
RUN npm install -g @steipete/oracle @google/gemini-cli
|
||||
|
||||
# Python tools: nano-pdf, openai-whisper
|
||||
RUN uv tool install nano-pdf && \
|
||||
uv tool install openai-whisper
|
||||
ENV PATH="/root/.local/bin:${PATH}"
|
||||
|
||||
# ── Nanobot source ──────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user