chore: remove proto codegen from prod Dockerfile
This commit is contained in:
@@ -7,29 +7,15 @@ Part of a multi-repo project. Parent `../AGENTS.md` has full architecture contex
|
|||||||
## Build & Run
|
## Build & Run
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
go run main.go # requires generated proto stubs first
|
go run main.go
|
||||||
go build -o collab-go main.go
|
go build -o collab-go main.go
|
||||||
```
|
```
|
||||||
|
|
||||||
Port: `1234` (override with `ADDR` env var).
|
Port: `1234` (override with `ADDR` env var).
|
||||||
|
|
||||||
### Prerequisites — generated proto stubs
|
### Protobuf
|
||||||
|
|
||||||
`pkg/gen/` is gitignored. Code **will not compile** without it. Generate from the parent directory:
|
Consumes Go stubs (`yoreseedocpb`) from `git.yoresee.cc/YoreseeDoc/yoresee_doc_sdk_go`, pinned to tag `v0.1.0` in `go.mod`. No local codegen required.
|
||||||
|
|
||||||
```bash
|
|
||||||
# Option A: parent repo script (recommended)
|
|
||||||
bash ../deploy/script/gen_proto.sh
|
|
||||||
|
|
||||||
# Option B: manual protoc (requires protoc-gen-go + protoc-gen-go-grpc)
|
|
||||||
mkdir -p pkg/gen
|
|
||||||
protoc -I ../proto \
|
|
||||||
--go_out=pkg/gen --go_opt=paths=source_relative \
|
|
||||||
--go-grpc_out=pkg/gen --go-grpc_opt=paths=source_relative \
|
|
||||||
../proto/yoresee_doc/v1/yoresee_doc.proto
|
|
||||||
```
|
|
||||||
|
|
||||||
Install codegen tools: `go install google.golang.org/protobuf/cmd/protoc-gen-go@latest && go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest`
|
|
||||||
|
|
||||||
## Environment Variables
|
## Environment Variables
|
||||||
|
|
||||||
@@ -57,14 +43,13 @@ go build ./...
|
|||||||
- `handler/` — WebSocket upgrade, auth check, doc-existence check via gRPC, proxy to collab-core
|
- `handler/` — WebSocket upgrade, auth check, doc-existence check via gRPC, proxy to collab-core
|
||||||
- `health/` — `/health`, `/readyz`, `/livez` probes (readiness checks backend gRPC)
|
- `health/` — `/health`, `/readyz`, `/livez` probes (readiness checks backend gRPC)
|
||||||
- `proxy/` — bidirectional WebSocket proxy to collab-core at path `/doc-{docID}`
|
- `proxy/` — bidirectional WebSocket proxy to collab-core at path `/doc-{docID}`
|
||||||
- `pkg/gen/` — generated protobuf stubs (gitignored)
|
|
||||||
|
|
||||||
Connection flow: `Browser → /ws/doc/{docId}?token=... → collab-go (auth + gRPC doc check) → collab-core /doc-{docId}`
|
Connection flow: `Browser → /ws/doc/{docId}?token=... → collab-go (auth + gRPC doc check) → collab-core /doc-{docId}`
|
||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
- `Dockerfile` — dev image, runs `go run main.go`
|
- `Dockerfile` — dev image, runs `go run main.go`
|
||||||
- `Dockerfile.prod` — production build; **expects build context at parent directory** (`COPY collab-go/...`). Proto codegen runs inside the build.
|
- `Dockerfile.prod` — production build; **expects build context at parent directory** (`COPY collab-go/...`).
|
||||||
|
|
||||||
## Conventions
|
## Conventions
|
||||||
|
|
||||||
|
|||||||
+1
-10
@@ -2,22 +2,13 @@ FROM golang:1.24-alpine AS builder
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
ENV GOPROXY=https://goproxy.cn,direct
|
ENV GOPROXY=https://goproxy.cn,direct
|
||||||
|
ENV GOPRIVATE=git.yoresee.cc/YoreseeDoc
|
||||||
RUN apk add --no-cache protobuf
|
|
||||||
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.36.5 && \
|
|
||||||
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.5.1
|
|
||||||
|
|
||||||
COPY collab-go/go.mod collab-go/go.sum ./
|
COPY collab-go/go.mod collab-go/go.sum ./
|
||||||
COPY collab-go ./collab-go
|
COPY collab-go ./collab-go
|
||||||
COPY proto ./proto
|
|
||||||
|
|
||||||
WORKDIR /app/collab-go
|
WORKDIR /app/collab-go
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
RUN mkdir -p /app/collab-go/pkg/gen && \
|
|
||||||
protoc -I /app/proto \
|
|
||||||
--go_out=/app/collab-go/pkg/gen --go_opt=paths=source_relative \
|
|
||||||
--go-grpc_out=/app/collab-go/pkg/gen --go-grpc_opt=paths=source_relative \
|
|
||||||
/app/proto/yoresee_doc/v1/yoresee_doc.proto
|
|
||||||
RUN go mod tidy
|
RUN go mod tidy
|
||||||
RUN CGO_ENABLED=0 go build -p 1 -o collab-go main.go
|
RUN CGO_ENABLED=0 go build -p 1 -o collab-go main.go
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user