mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
- Enhanced .dockerignore to exclude additional build outputs and dependencies. - Modified dev.mjs and start.mjs to change Docker container startup behavior, removing the --build flag to preserve volumes. - Updated docker-compose.yml to add a new volume for persisting Claude CLI OAuth session keys. - Introduced docker-entrypoint.sh to fix permissions on the Claude CLI config directory. - Adjusted Dockerfile to include the entrypoint script and ensure proper user permissions. These changes improve the Docker setup and streamline the development workflow.
84 lines
2.7 KiB
YAML
84 lines
2.7 KiB
YAML
# Automaker Docker Compose
|
|
# Runs Automaker in complete isolation from your host filesystem.
|
|
# The container cannot access any files on your laptop - only Docker-managed volumes.
|
|
#
|
|
# Usage:
|
|
# docker-compose up -d
|
|
# Then open http://localhost:3007
|
|
#
|
|
# See docs/docker-isolation.md for full documentation.
|
|
|
|
services:
|
|
# Frontend UI
|
|
ui:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: ui
|
|
container_name: automaker-ui
|
|
restart: unless-stopped
|
|
ports:
|
|
- '3007:80'
|
|
depends_on:
|
|
- server
|
|
|
|
# Backend API Server
|
|
server:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: server
|
|
container_name: automaker-server
|
|
restart: unless-stopped
|
|
ports:
|
|
- '3008:3008'
|
|
environment:
|
|
# Required
|
|
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
|
|
|
|
# Optional - authentication, one will generate if left blank
|
|
- AUTOMAKER_API_KEY=${AUTOMAKER_API_KEY:-}
|
|
|
|
# Optional - restrict to specific directory within container only
|
|
# Projects and files can only be created/accessed within this directory
|
|
# Paths are INSIDE the container, not on your host
|
|
# Default: /projects
|
|
- ALLOWED_ROOT_DIRECTORY=${ALLOWED_ROOT_DIRECTORY:-/projects}
|
|
|
|
# Optional - data directory for sessions, settings, etc. (container-only)
|
|
- DATA_DIR=/data
|
|
|
|
# Optional - CORS origin (default allows all)
|
|
- CORS_ORIGIN=${CORS_ORIGIN:-http://localhost:3007}
|
|
|
|
# Internal - indicates the API is running in a containerized sandbox environment
|
|
# This is used by the UI to determine if sandbox risk warnings should be shown
|
|
- IS_CONTAINERIZED=true
|
|
volumes:
|
|
# ONLY named volumes - these are isolated from your host filesystem
|
|
# This volume persists data between restarts but is container-managed
|
|
- automaker-data:/data
|
|
|
|
# Persist Claude CLI OAuth session keys across container restarts
|
|
# This allows 'claude login' authentication to persist between restarts
|
|
- automaker-claude-config:/home/automaker/.claude
|
|
|
|
# NO host directory mounts - container cannot access your laptop files
|
|
# If you need to work on a project, create it INSIDE the container
|
|
# or use a separate docker-compose override file
|
|
|
|
# Security: Server runs as non-root user (already set in Dockerfile)
|
|
# Security: No privileged mode
|
|
# Security: No host network access
|
|
# Security: No host filesystem mounts
|
|
|
|
volumes:
|
|
automaker-data:
|
|
name: automaker-data
|
|
# Named volume - completely isolated from host filesystem
|
|
|
|
automaker-claude-config:
|
|
name: automaker-claude-config
|
|
# Named volume for Claude CLI OAuth session keys and configuration
|
|
# Persists authentication across container restarts
|