Skip to content

Commit 7c22fa0

Browse files
authored
fix: mount dev compose volume to writable path (#134)
## Summary - Fix SQLite "out of memory" error in `docker-compose-dev.yml` caused by the volume mounting to `/data` (root-owned) while the container runs as the `temporal` user - Mount the volume to `/home/temporal` instead, which is already owned by the `temporal` user - Add CI test job for `docker-compose-dev.yml` to catch this class of issue ## Test plan - [x] Verified locally that `docker compose -f docker-compose-dev.yml up` starts successfully - [x] CI compose-dev-test job passes
1 parent d64f331 commit 7c22fa0

2 files changed

Lines changed: 54 additions & 2 deletions

File tree

.github/workflows/compose.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,58 @@ jobs:
7878
working-directory: compose
7979
run: docker compose -f ${{ matrix.compose-file }} -f docker-compose-validate.yml down -v
8080

81+
compose-dev-test:
82+
name: Test docker-compose-dev.yml
83+
needs: lint-actions
84+
runs-on: ubuntu-latest
85+
timeout-minutes: 10
86+
steps:
87+
- uses: actions/checkout@v6
88+
89+
- name: Start dev compose stack
90+
working-directory: compose
91+
run: docker compose -f docker-compose-dev.yml up -d
92+
93+
- name: Wait for Temporal to be ready
94+
working-directory: compose
95+
run: |
96+
for i in $(seq 1 30); do
97+
if docker compose -f docker-compose-dev.yml exec temporal temporal operator cluster health 2>/dev/null; then
98+
echo "Temporal is ready"
99+
exit 0
100+
fi
101+
echo "Waiting for Temporal... ($i/30)"
102+
sleep 2
103+
done
104+
echo "Temporal failed to become ready"
105+
exit 1
106+
107+
- name: Validate Temporal is functional
108+
working-directory: compose
109+
run: |
110+
docker compose -f docker-compose-dev.yml exec temporal temporal operator namespace describe default
111+
docker compose -f docker-compose-dev.yml exec temporal temporal workflow start \
112+
--workflow-id validation-test \
113+
--type NonExistentWorkflow \
114+
--task-queue validation-queue \
115+
--execution-timeout 10s
116+
docker compose -f docker-compose-dev.yml exec temporal temporal workflow terminate \
117+
--workflow-id validation-test \
118+
--reason "Validation complete" || true
119+
120+
- name: Print all logs on failure
121+
if: failure()
122+
working-directory: compose
123+
run: |
124+
echo "=== Printing all container logs ==="
125+
docker compose -f docker-compose-dev.yml ps -a
126+
docker compose -f docker-compose-dev.yml logs
127+
128+
- name: Cleanup
129+
if: always()
130+
working-directory: compose
131+
run: docker compose -f docker-compose-dev.yml down -v
132+
81133
compose-tls-test:
82134
name: Test docker-compose-tls.yml
83135
needs: lint-actions

compose/docker-compose-dev.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ services:
66
- 7233:7233
77
- 8233:8233
88
volumes:
9-
- temporal-data:/data
10-
command: server start-dev --ip 0.0.0.0 --db-filename /data/temporal.db
9+
- temporal-data:/home/temporal
10+
command: server start-dev --ip 0.0.0.0 --db-filename /home/temporal/temporal.db
1111

1212
volumes:
1313
temporal-data:

0 commit comments

Comments
 (0)