Spaces:
Paused
Paused
frdel commited on
Commit ·
4179a3f
1
Parent(s): c6b5661
Local docker build
Browse files- .dockerignore +56 -0
- .gitignore +0 -16
- DockerfileLocal +36 -0
- docker/run/Dockerfile +1 -1
- docker/run/build.txt +16 -7
- docker/run/fs/ins/install_A0.sh +14 -4
- docker/run/fs/ins/install_A02.sh +4 -2
- example.env +0 -28
.dockerignore
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
###############################################################################
|
| 2 |
+
# Project‑specific exclusions / re‑includes
|
| 3 |
+
###############################################################################
|
| 4 |
+
|
| 5 |
+
# Large / generated data
|
| 6 |
+
memory/**
|
| 7 |
+
|
| 8 |
+
# Logs & tmp
|
| 9 |
+
logs/*
|
| 10 |
+
tmp/*
|
| 11 |
+
|
| 12 |
+
# Knowledge directory – keep only default/
|
| 13 |
+
knowledge/**
|
| 14 |
+
!knowledge/default/
|
| 15 |
+
!knowledge/default/**
|
| 16 |
+
|
| 17 |
+
# Instruments directory – keep only default/
|
| 18 |
+
instruments/**
|
| 19 |
+
!instruments/default/
|
| 20 |
+
!instruments/default/**
|
| 21 |
+
|
| 22 |
+
# Keep .gitkeep markers anywhere
|
| 23 |
+
!**/.gitkeep
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
###############################################################################
|
| 27 |
+
# Environment / tooling
|
| 28 |
+
###############################################################################
|
| 29 |
+
.conda/
|
| 30 |
+
.cursor/
|
| 31 |
+
.venv/
|
| 32 |
+
.git/
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
###############################################################################
|
| 36 |
+
# Tests (root‑level only)
|
| 37 |
+
###############################################################################
|
| 38 |
+
/*.test.py
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
###############################################################################
|
| 42 |
+
# ─── LAST SECTION: universal junk / caches (MUST BE LAST) ───
|
| 43 |
+
# Put these at the *bottom* so they override any ! re‑includes above
|
| 44 |
+
###############################################################################
|
| 45 |
+
# OS / editor junk
|
| 46 |
+
**/.DS_Store
|
| 47 |
+
**/Thumbs.db
|
| 48 |
+
|
| 49 |
+
# Python caches / compiled artefacts
|
| 50 |
+
**/__pycache__/
|
| 51 |
+
**/*.py[cod]
|
| 52 |
+
**/*.pyo
|
| 53 |
+
**/*.pyd
|
| 54 |
+
|
| 55 |
+
# Environment files anywhere
|
| 56 |
+
*.env
|
.gitignore
CHANGED
|
@@ -4,31 +4,15 @@
|
|
| 4 |
**/__pycache__/
|
| 5 |
**/.conda/
|
| 6 |
|
| 7 |
-
# Ignore docker/run/agent-zero directory
|
| 8 |
-
docker/run/agent-zero/
|
| 9 |
-
|
| 10 |
#Ignore cursor rules
|
| 11 |
.cursor/
|
| 12 |
|
| 13 |
# ignore test files in root dir
|
| 14 |
/*.test.py
|
| 15 |
|
| 16 |
-
# Ignore git internal files (for bundler)
|
| 17 |
-
.git/
|
| 18 |
-
|
| 19 |
# Ignore all contents of the virtual environment directory
|
| 20 |
.venv/
|
| 21 |
|
| 22 |
-
# Handle bundle directory
|
| 23 |
-
bundle/*/
|
| 24 |
-
!bundle/mac_pkg_scripts
|
| 25 |
-
|
| 26 |
-
# Handle work_dir directory
|
| 27 |
-
work_dir/*
|
| 28 |
-
|
| 29 |
-
# Handle specific docker directories
|
| 30 |
-
docker/run/agent-zero/**
|
| 31 |
-
|
| 32 |
# Handle memory directory
|
| 33 |
memory/**
|
| 34 |
!memory/**/
|
|
|
|
| 4 |
**/__pycache__/
|
| 5 |
**/.conda/
|
| 6 |
|
|
|
|
|
|
|
|
|
|
| 7 |
#Ignore cursor rules
|
| 8 |
.cursor/
|
| 9 |
|
| 10 |
# ignore test files in root dir
|
| 11 |
/*.test.py
|
| 12 |
|
|
|
|
|
|
|
|
|
|
| 13 |
# Ignore all contents of the virtual environment directory
|
| 14 |
.venv/
|
| 15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
# Handle memory directory
|
| 17 |
memory/**
|
| 18 |
!memory/**/
|
DockerfileLocal
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Use the pre-built base image for A0
|
| 2 |
+
# FROM agent-zero-base:local
|
| 3 |
+
FROM agent0ai/agent-zero-base:latest
|
| 4 |
+
|
| 5 |
+
# Set BRANCH to "local" if not provided
|
| 6 |
+
ARG BRANCH=local
|
| 7 |
+
ENV BRANCH=$BRANCH
|
| 8 |
+
|
| 9 |
+
# Copy filesystem files to root
|
| 10 |
+
COPY ./docker/run/fs/ /
|
| 11 |
+
# Copy current development files to git, they will only be used in "local" branch
|
| 12 |
+
COPY ./ /git/agent-zero
|
| 13 |
+
|
| 14 |
+
# pre installation steps
|
| 15 |
+
RUN bash /ins/pre_install.sh $BRANCH
|
| 16 |
+
|
| 17 |
+
# install A0
|
| 18 |
+
RUN bash /ins/install_A0.sh $BRANCH
|
| 19 |
+
|
| 20 |
+
# install additional software
|
| 21 |
+
RUN bash /ins/install_additional.sh $BRANCH
|
| 22 |
+
|
| 23 |
+
# cleanup repo and install A0 without caching, this speeds up builds
|
| 24 |
+
ARG CACHE_DATE=none
|
| 25 |
+
RUN echo "cache buster $CACHE_DATE" && bash /ins/install_A02.sh $BRANCH
|
| 26 |
+
|
| 27 |
+
# post installation steps
|
| 28 |
+
RUN bash /ins/post_install.sh $BRANCH
|
| 29 |
+
|
| 30 |
+
# Expose ports
|
| 31 |
+
EXPOSE 22 80 9000-9009
|
| 32 |
+
|
| 33 |
+
RUN chmod +x /exe/initialize.sh /exe/run_A0.sh /exe/run_searxng.sh /exe/run_tunnel_api.sh
|
| 34 |
+
|
| 35 |
+
# initialize runtime and switch to supervisord
|
| 36 |
+
CMD ["/exe/initialize.sh", "$BRANCH"]
|
docker/run/Dockerfile
CHANGED
|
@@ -7,7 +7,7 @@ ARG BRANCH
|
|
| 7 |
RUN if [ -z "$BRANCH" ]; then echo "ERROR: BRANCH is not set!" >&2; exit 1; fi
|
| 8 |
ENV BRANCH=$BRANCH
|
| 9 |
|
| 10 |
-
# Copy
|
| 11 |
COPY ./fs/ /
|
| 12 |
|
| 13 |
# pre installation steps
|
|
|
|
| 7 |
RUN if [ -z "$BRANCH" ]; then echo "ERROR: BRANCH is not set!" >&2; exit 1; fi
|
| 8 |
ENV BRANCH=$BRANCH
|
| 9 |
|
| 10 |
+
# Copy filesystem files to root
|
| 11 |
COPY ./fs/ /
|
| 12 |
|
| 13 |
# pre installation steps
|
docker/run/build.txt
CHANGED
|
@@ -1,23 +1,32 @@
|
|
| 1 |
-
# local image with smart cache
|
| 2 |
-
docker build -t agent-zero:local --build-arg BRANCH=development --build-arg CACHE_DATE=$(date +%Y-%m-%d:%H:%M:%S) .
|
| 3 |
|
| 4 |
-
#
|
| 5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
|
| 7 |
|
| 8 |
|
| 9 |
# dockerhub push:
|
|
|
|
|
|
|
| 10 |
|
| 11 |
docker login
|
| 12 |
|
| 13 |
# development:
|
| 14 |
-
docker buildx build -
|
| 15 |
|
| 16 |
# testing:
|
| 17 |
-
docker buildx build -
|
| 18 |
|
| 19 |
# main
|
| 20 |
-
docker buildx build -
|
| 21 |
|
| 22 |
|
| 23 |
# plain output
|
|
|
|
|
|
|
|
|
|
| 1 |
|
| 2 |
+
# LOCAL BUILDS
|
| 3 |
+
# Run these commands from the project root folder
|
| 4 |
+
|
| 5 |
+
# local development image based on local files with smart cache
|
| 6 |
+
docker build -f DockerfileLocal -t agent-zero-local --build-arg CACHE_DATE=$(date +%Y-%m-%d:%H:%M:%S) .
|
| 7 |
+
|
| 8 |
+
# local development image based on local files without cache
|
| 9 |
+
docker build -f DockerfileLocal -t agent-zero-local --no-cache .
|
| 10 |
+
|
| 11 |
+
# local image based on testing branch instead of local files
|
| 12 |
+
docker build -f ./docker/run/Dockerfile -t agent-zero-testing --build-arg BRANCH=testing .
|
| 13 |
|
| 14 |
|
| 15 |
|
| 16 |
# dockerhub push:
|
| 17 |
+
# Run these commands from the project root folder
|
| 18 |
+
|
| 19 |
|
| 20 |
docker login
|
| 21 |
|
| 22 |
# development:
|
| 23 |
+
docker buildx build -f ./docker/run/Dockerfile -t agent0ai/agent-zero:development --platform linux/amd64,linux/arm64 --push --build-arg BRANCH=development --build-arg CACHE_DATE=$(date +%Y-%m-%d:%H:%M:%S) ./docker/run
|
| 24 |
|
| 25 |
# testing:
|
| 26 |
+
docker buildx build -f ./docker/run/Dockerfile -t agent0ai/agent-zero:testing --platform linux/amd64,linux/arm64 --push --build-arg BRANCH=testing --build-arg CACHE_DATE=$(date +%Y-%m-%d:%H:%M:%S) ./docker/run
|
| 27 |
|
| 28 |
# main
|
| 29 |
+
docker buildx build -f ./docker/run/Dockerfile -t agent0ai/agent-zero:vx.x.x -t agent0ai/agent-zero:latest --platform linux/amd64,linux/arm64 --push --build-arg BRANCH=main --build-arg CACHE_DATE=$(date +%Y-%m-%d:%H:%M:%S) ./docker/run
|
| 30 |
|
| 31 |
|
| 32 |
# plain output
|
docker/run/fs/ins/install_A0.sh
CHANGED
|
@@ -11,10 +11,20 @@ if [ -z "$1" ]; then
|
|
| 11 |
fi
|
| 12 |
BRANCH="$1"
|
| 13 |
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
. "/ins/setup_venv.sh" "$@"
|
| 20 |
|
|
|
|
| 11 |
fi
|
| 12 |
BRANCH="$1"
|
| 13 |
|
| 14 |
+
if [ "$BRANCH" = "local" ]; then
|
| 15 |
+
# For local branch, use the files
|
| 16 |
+
echo "Using local dev files in /git/agent-zero"
|
| 17 |
+
# List all files recursively in the target directory
|
| 18 |
+
# echo "All files in /git/agent-zero (recursive):"
|
| 19 |
+
# find "/git/agent-zero" -type f | sort
|
| 20 |
+
else
|
| 21 |
+
# For other branches, clone from GitHub
|
| 22 |
+
echo "Cloning repository from branch $BRANCH..."
|
| 23 |
+
git clone -b "$BRANCH" "https://github.com/agent0ai/agent-zero" "/git/agent-zero" || {
|
| 24 |
+
echo "CRITICAL ERROR: Failed to clone repository. Branch: $BRANCH"
|
| 25 |
+
exit 1
|
| 26 |
+
}
|
| 27 |
+
fi
|
| 28 |
|
| 29 |
. "/ins/setup_venv.sh" "$@"
|
| 30 |
|
docker/run/fs/ins/install_A02.sh
CHANGED
|
@@ -3,8 +3,10 @@ set -e
|
|
| 3 |
|
| 4 |
# cachebuster script, this helps speed up docker builds
|
| 5 |
|
| 6 |
-
# remove repo
|
| 7 |
-
|
|
|
|
|
|
|
| 8 |
|
| 9 |
# run the original install script again
|
| 10 |
bash /ins/install_A0.sh "$@"
|
|
|
|
| 3 |
|
| 4 |
# cachebuster script, this helps speed up docker builds
|
| 5 |
|
| 6 |
+
# remove repo (if not local branch)
|
| 7 |
+
if [ "$1" != "local" ]; then
|
| 8 |
+
rm -rf /git/agent-zero
|
| 9 |
+
fi
|
| 10 |
|
| 11 |
# run the original install script again
|
| 12 |
bash /ins/install_A0.sh "$@"
|
example.env
DELETED
|
@@ -1,28 +0,0 @@
|
|
| 1 |
-
API_KEY_OPENAI=
|
| 2 |
-
API_KEY_ANTHROPIC=
|
| 3 |
-
API_KEY_GROQ=
|
| 4 |
-
API_KEY_PERPLEXITY=
|
| 5 |
-
API_KEY_GOOGLE=
|
| 6 |
-
API_KEY_MISTRAL=
|
| 7 |
-
API_KEY_OPENROUTER=
|
| 8 |
-
API_KEY_SAMBANOVA=
|
| 9 |
-
|
| 10 |
-
API_KEY_OPENAI_AZURE=
|
| 11 |
-
OPENAI_AZURE_ENDPOINT=
|
| 12 |
-
OPENAI_API_VERSION=
|
| 13 |
-
|
| 14 |
-
HF_TOKEN=
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
WEB_UI_PORT=50001
|
| 18 |
-
USE_CLOUDFLARE=false
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
OLLAMA_BASE_URL="http://127.0.0.1:11434"
|
| 22 |
-
LM_STUDIO_BASE_URL="http://127.0.0.1:1234/v1"
|
| 23 |
-
OPEN_ROUTER_BASE_URL="https://openrouter.ai/api/v1"
|
| 24 |
-
SAMBANOVA_BASE_URL="https://fast-api.snova.ai/v1"
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
TOKENIZERS_PARALLELISM=true
|
| 28 |
-
PYDEVD_DISABLE_FILE_VALIDATION=1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|