40 lines
1.1 KiB
Docker
40 lines
1.1 KiB
Docker
# Development Dockerfile for Callbacks Service with Air hot reload
|
|
|
|
FROM golang:alpine AS builder
|
|
|
|
RUN apk add --no-cache bash git build-base protoc protobuf-dev && \
|
|
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest && \
|
|
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest && \
|
|
go install github.com/air-verse/air@latest
|
|
|
|
WORKDIR /src
|
|
|
|
COPY api/proto ./api/proto
|
|
COPY api/pkg ./api/pkg
|
|
COPY ci/scripts/proto/generate.sh ./ci/scripts/proto/
|
|
RUN bash ci/scripts/proto/generate.sh
|
|
|
|
# Runtime stage for development with Air
|
|
FROM golang:alpine
|
|
|
|
RUN apk add --no-cache bash git build-base && \
|
|
go install github.com/air-verse/air@latest
|
|
|
|
WORKDIR /src
|
|
|
|
# Copy generated proto and pkg from builder
|
|
COPY --from=builder /src/api/proto ./api/proto
|
|
COPY --from=builder /src/api/pkg ./api/pkg
|
|
|
|
# Copy dev-specific entrypoint script
|
|
COPY ci/dev/entrypoints/callbacks.sh /app/entrypoint.sh
|
|
RUN chmod +x /app/entrypoint.sh
|
|
|
|
# Source code will be mounted at runtime
|
|
WORKDIR /src/api/edge/callbacks
|
|
|
|
EXPOSE 9420
|
|
|
|
ENTRYPOINT ["/app/entrypoint.sh"]
|
|
CMD ["air", "-c", ".air.toml", "--", "-config.file", "/app/config.yml", "-debug"]
|