-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
38 lines (28 loc) · 1.21 KB
/
Dockerfile
File metadata and controls
38 lines (28 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
FROM ubuntu:22.04
# Install essentials
RUN apt-get update && apt-get install -y \
python3 python3-pip git curl wget \
build-essential cmake \
&& rm -rf /var/lib/apt/lists/*
# Install Go
RUN curl -sL https://go.dev/dl/go1.24.2.linux-arm64.tar.gz | tar -C /usr/local -xz
ENV PATH="/usr/local/go/bin:${PATH}"
# Install Rust
RUN curl -sSf https://sh.rustup.rs | sh -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
# Install Node.js
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y nodejs
# Install FLUX runtime from GitHub
RUN git clone https://github.com/SuperInstance/flux-runtime.git /opt/flux-runtime
# Install cross-assembler
RUN git clone https://github.com/SuperInstance/flux-cross-assembler.git /opt/flux-cross-assembler
# Set up workspace
RUN mkdir -p /workspace/vessel /workspace/repos
WORKDIR /workspace
# Copy agent bridge
COPY agent_bridge.py /workspace/
# Environment
ENV PYTHONPATH="/opt/flux-runtime/src:${PYTHONPATH}"
ENV FLUX_AGENT=1
# Entry: boot the agent
CMD ["python3", "-c", "from agent_bridge import *; import os; rt=FluxAgentRuntime(os.environ['GITHUB_TOKEN']); rt.boot(open('/workspace/onboarding.md').read() if os.path.exists('/workspace/onboarding.md') else '')"]