When running upaas via docker-compose up, git clone operations fail because Docker bind mounts use container-internal paths instead of host paths.
Root Cause
docker-compose.yml does not set UPAAS_HOST_DATA_DIR. The config defaults HostDataDir to DataDir when empty (config.go:113-115). Inside the container, DataDir = /var/lib/upaas. When CloneRepo is called, containerToHostPath() (deploy.go) returns the container path unchanged, so the git clone Docker container gets bind mounts pointing to /var/lib/upaas/builds/... — a path that exists inside the upaas container but not on the Docker host.
The git clone container runs on the host Docker daemon (via the mounted socket), so it cannot access these container-internal paths.
Impact
All deployments fail when upaas is run via docker-compose (the primary documented deployment method). Manual and webhook-triggered deploys both affected.
Fix
Either:
Add UPAAS_HOST_DATA_DIR to docker-compose.yml with the host-side path of the upaas-data volume, OR
Switch from a named volume to a bind mount so the host path is known and can be set automatically
## Bug
When running upaas via `docker-compose up`, git clone operations fail because Docker bind mounts use container-internal paths instead of host paths.
## Root Cause
`docker-compose.yml` does not set `UPAAS_HOST_DATA_DIR`. The config defaults `HostDataDir` to `DataDir` when empty (`config.go:113-115`). Inside the container, `DataDir` = `/var/lib/upaas`. When `CloneRepo` is called, `containerToHostPath()` (`deploy.go`) returns the container path unchanged, so the git clone Docker container gets bind mounts pointing to `/var/lib/upaas/builds/...` — a path that exists inside the upaas container but **not** on the Docker host.
The git clone container runs on the host Docker daemon (via the mounted socket), so it cannot access these container-internal paths.
## Impact
All deployments fail when upaas is run via docker-compose (the primary documented deployment method). Manual and webhook-triggered deploys both affected.
## Fix
Either:
1. Add `UPAAS_HOST_DATA_DIR` to `docker-compose.yml` with the host-side path of the upaas-data volume, OR
2. Switch from a named volume to a bind mount so the host path is known and can be set automatically
## Files
- `docker-compose.yml` — missing env var
- `internal/config/config.go:113-115` — HostDataDir fallback
- `internal/service/deploy/deploy.go` — `containerToHostPath()`
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Bug
When running upaas via
docker-compose up, git clone operations fail because Docker bind mounts use container-internal paths instead of host paths.Root Cause
docker-compose.ymldoes not setUPAAS_HOST_DATA_DIR. The config defaultsHostDataDirtoDataDirwhen empty (config.go:113-115). Inside the container,DataDir=/var/lib/upaas. WhenCloneRepois called,containerToHostPath()(deploy.go) returns the container path unchanged, so the git clone Docker container gets bind mounts pointing to/var/lib/upaas/builds/...— a path that exists inside the upaas container but not on the Docker host.The git clone container runs on the host Docker daemon (via the mounted socket), so it cannot access these container-internal paths.
Impact
All deployments fail when upaas is run via docker-compose (the primary documented deployment method). Manual and webhook-triggered deploys both affected.
Fix
Either:
UPAAS_HOST_DATA_DIRtodocker-compose.ymlwith the host-side path of the upaas-data volume, ORFiles
docker-compose.yml— missing env varinternal/config/config.go:113-115— HostDataDir fallbackinternal/service/deploy/deploy.go—containerToHostPath()