Add Dockerfile and Makefile for building and generating Protobuf code
This commit is contained in:
14
Makefile
Normal file
14
Makefile
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
PROTOC_GEN_GO := protoc-gen-go
|
||||||
|
PROTOC_GEN_GO_GRPC := protoc-gen-go-grpc
|
||||||
|
PROTO_DIR := pkg/pb
|
||||||
|
PROTO_FILE := $(PROTO_DIR)/data_service/data.proto
|
||||||
|
OUT_DIR := $(PROTO_DIR)
|
||||||
|
|
||||||
|
.PHONY: proto
|
||||||
|
proto:
|
||||||
|
@echo "Generating Go code from Protobuf..."
|
||||||
|
protoc \
|
||||||
|
--go_out=$(OUT_DIR) --go_opt=paths=source_relative \
|
||||||
|
--go-grpc_out=$(OUT_DIR) --go-grpc_opt=paths=source_relative \
|
||||||
|
$(PROTO_FILE)
|
||||||
|
@echo "Protobuf generation complete."
|
||||||
25
services/data_service/Dockerfile
Normal file
25
services/data_service/Dockerfile
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# Stage 1: Builder
|
||||||
|
FROM golang:latest AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy go mod and download deps
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
# Copy source
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Build binary
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /data_service ./services/data_service/cmd
|
||||||
|
|
||||||
|
# Stage 2: Runner
|
||||||
|
FROM debian:bullseye-slim
|
||||||
|
|
||||||
|
# Minimal setup
|
||||||
|
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Copy binary
|
||||||
|
COPY --from=builder /data_service /usr/local/bin/data_service
|
||||||
|
|
||||||
|
ENTRYPOINT ["data_service"]
|
||||||
Reference in New Issue
Block a user