diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index d108bfa8..00000000 --- a/.dockerignore +++ /dev/null @@ -1,8 +0,0 @@ -target/ -data/ -.local/ -.git/ -.env -*.swp -*.swo -.DS_Store diff --git a/.dockerignore b/.dockerignore new file mode 120000 index 00000000..66b30bcf --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +docker/.dockerignore \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4aa6231c..4d3bd81a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -148,6 +148,7 @@ jobs: uses: docker/build-push-action@v6 with: context: . + file: docker/Dockerfile load: true tags: zeph:local push: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d442b05c..71404ccd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -171,6 +171,7 @@ jobs: - uses: docker/build-push-action@v6 with: context: . + file: docker/Dockerfile platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} diff --git a/docker/.dockerignore b/docker/.dockerignore new file mode 100644 index 00000000..d108bfa8 --- /dev/null +++ b/docker/.dockerignore @@ -0,0 +1,8 @@ +target/ +data/ +.local/ +.git/ +.env +*.swp +*.swo +.DS_Store diff --git a/Dockerfile b/docker/Dockerfile similarity index 100% rename from Dockerfile rename to docker/Dockerfile diff --git a/Dockerfile.dev b/docker/Dockerfile.dev similarity index 100% rename from Dockerfile.dev rename to docker/Dockerfile.dev diff --git a/docker-compose.deps.yml b/docker/docker-compose.deps.yml similarity index 100% rename from docker-compose.deps.yml rename to docker/docker-compose.deps.yml diff --git a/docker-compose.dev.yml b/docker/docker-compose.dev.yml similarity index 97% rename from docker-compose.dev.yml rename to docker/docker-compose.dev.yml index 51d95243..91911f71 100644 --- a/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -11,8 +11,8 @@ services: zeph: build: - context: . - dockerfile: Dockerfile.dev + context: .. + dockerfile: docker/Dockerfile.dev args: CARGO_FEATURES: ${CARGO_FEATURES:-} depends_on: diff --git a/docker-compose.gpu.yml b/docker/docker-compose.gpu.yml similarity index 100% rename from docker-compose.gpu.yml rename to docker/docker-compose.gpu.yml diff --git a/docker-compose.vault.yml b/docker/docker-compose.vault.yml similarity index 100% rename from docker-compose.vault.yml rename to docker/docker-compose.vault.yml diff --git a/docker-compose.yml b/docker/docker-compose.yml similarity index 100% rename from docker-compose.yml rename to docker/docker-compose.yml diff --git a/docs/src/guide/docker.md b/docs/src/guide/docker.md index c3a4e647..aaa0f7a9 100644 --- a/docs/src/guide/docker.md +++ b/docs/src/guide/docker.md @@ -33,24 +33,24 @@ docker compose --profile gpu run --rm ollama ollama pull mistral:7b docker compose --profile gpu run --rm ollama ollama pull qwen3-embedding # Start all services with GPU -docker compose --profile gpu -f docker-compose.yml -f docker-compose.gpu.yml up +docker compose --profile gpu -f docker/docker-compose.yml -f docker/docker-compose.gpu.yml up ``` ## Age Vault (Encrypted Secrets) ```bash # Mount key and vault files into container -docker compose -f docker-compose.yml -f docker-compose.vault.yml up +docker compose -f docker/docker-compose.yml -f docker/docker-compose.vault.yml up ``` Override file paths via environment variables: ```bash ZEPH_VAULT_KEY=./my-key.txt ZEPH_VAULT_PATH=./my-secrets.age \ - docker compose -f docker-compose.yml -f docker-compose.vault.yml up + docker compose -f docker/docker-compose.yml -f docker/docker-compose.vault.yml up ``` -> The image must be built with `vault-age` feature enabled. For local builds, use `CARGO_FEATURES=vault-age` with `docker-compose.dev.yml`. +> The image must be built with `vault-age` feature enabled. For local builds, use `CARGO_FEATURES=vault-age` with `docker/docker-compose.dev.yml`. ## Using Specific Version @@ -79,25 +79,25 @@ trivy image --severity HIGH,CRITICAL --exit-code 1 ghcr.io/bug-ops/zeph:latest ## Local Development -Full stack with debug tracing (builds from source via `Dockerfile.dev`, uses host Ollama via `host.docker.internal`): +Full stack with debug tracing (builds from source via `docker/Dockerfile.dev`, uses host Ollama via `host.docker.internal`): ```bash # Build and start Qdrant + Zeph with debug logging -docker compose -f docker-compose.dev.yml up --build +docker compose -f docker/docker-compose.dev.yml up --build # Build with optional features (e.g. vault-age, candle) -CARGO_FEATURES=vault-age docker compose -f docker-compose.dev.yml up --build +CARGO_FEATURES=vault-age docker compose -f docker/docker-compose.dev.yml up --build # Build with vault-age and mount vault files CARGO_FEATURES=vault-age \ - docker compose -f docker-compose.dev.yml -f docker-compose.vault.yml up --build + docker compose -f docker/docker-compose.dev.yml -f docker/docker-compose.vault.yml up --build ``` Dependencies only (run zeph natively on host): ```bash # Start Qdrant -docker compose -f docker-compose.deps.yml up +docker compose -f docker/docker-compose.deps.yml up # Run zeph natively with debug tracing RUST_LOG=zeph=debug,zeph_channels=trace cargo run diff --git a/docs/src/guide/tui.md b/docs/src/guide/tui.md index bfc5a2e9..f38685bc 100644 --- a/docs/src/guide/tui.md +++ b/docs/src/guide/tui.md @@ -263,5 +263,5 @@ When TUI is active, tracing output is redirected to `zeph.log` to avoid corrupti Docker images are built without the `tui` feature by default (headless operation). To build a Docker image with TUI support: ```bash -docker build -f Dockerfile.dev --build-arg CARGO_FEATURES=tui -t zeph:tui . +docker build -f docker/Dockerfile.dev --build-arg CARGO_FEATURES=tui -t zeph:tui . ``` diff --git a/docs/src/guide/vault.md b/docs/src/guide/vault.md index 17c9250a..81f0978b 100644 --- a/docs/src/guide/vault.md +++ b/docs/src/guide/vault.md @@ -54,12 +54,12 @@ cargo build --release --features vault-age Mount key and vault files into the container: ```bash -docker compose -f docker-compose.yml -f docker-compose.vault.yml up +docker compose -f docker/docker-compose.yml -f docker/docker-compose.vault.yml up ``` Override paths: ```bash ZEPH_VAULT_KEY=./my-key.txt ZEPH_VAULT_PATH=./my-secrets.age \ - docker compose -f docker-compose.yml -f docker-compose.vault.yml up + docker compose -f docker/docker-compose.yml -f docker/docker-compose.vault.yml up ```