Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ DB_STATEMENT_TIMEOUT_MS=10000

# Redis
REDIS_ADDR=redis:6379
# 服務跑在主機時連 Docker Redis 用此 port;避開 Mac 本機 redis-server 的 6379。
# 這個衝突不會報錯,只會靜默連錯台(本機 redis 綁 127.0.0.1,比 docker 的 * 更精確,優先接手),
# 所以主機跑法一律用 REDIS_ADDR=127.0.0.1:6380,不要用 6379。
REDIS_HOST_PORT=6380

# LINE
LINE_CHANNEL_SECRET=
Expand Down
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,22 @@ docker compose --profile simulator up -d simulator

> 重跑 `smoke_test.sh` 前建議先 `docker compose down -v` 清掉舊資料,避免殘留訂單干擾。

### 只起相依服務、server 跑在主機(debug 常用)

```bash
docker compose up -d postgis redis
DB_HOST=127.0.0.1 DB_PORT=5433 REDIS_ADDR=127.0.0.1:6380 go run ./cmd/server
```

> **三個變數都要覆寫**:`.env` 裡的 `postgis`/`redis` 是 compose 網路內的主機名,
> 在主機上解析不到。
>
> **Redis 一定要用 6380,不要用 6379**:Mac 上常駐的 `redis-server` 綁 `127.0.0.1:6379`,
> Docker 綁 `*:6379`,**localhost 一律由本機那台接手**——連錯不會報錯,服務照跑,
> 但你在容器裡 `redis-cli KEYS` 什麼都查不到(狀態其實寫在本機那台)。
> 這也是 postgis 讓開 5432 的同一個理由。用
> `lsof -nP -iTCP:6379 -sTCP:LISTEN` 可以看誰在聽。

---

## API 端點
Expand Down
6 changes: 5 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,11 @@ services:
redis:
image: redis:7-alpine
ports:
- "6379:6379"
# 6380 避免與本機 Redis 的 6379 衝突(與上面 postgis 讓開 5432 同一個理由)。
# **這個衝突不會報錯,只會靜默連錯台**:本機 redis-server 綁 127.0.0.1、
# docker 綁 *,localhost 一律由前者接手——服務跑在主機時吃的是本機那台,
# 而你在容器裡 `redis-cli KEYS` 什麼都查不到,很容易誤判成「鍵根本沒寫進去」。
- "${REDIS_HOST_PORT:-6380}:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
Expand Down
Loading