Files
sendico/ci/dev/payments-orchestrator.dockerfile
2026-02-10 18:29:47 +01:00

53 lines
1.8 KiB
Docker

# Development Dockerfile for Payments Orchestrator 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
# Copy service dependencies (needed for go.mod replace directives)
COPY api/payments/storage ./api/payments/storage
COPY api/ledger ./api/ledger
COPY api/billing/fees ./api/billing/fees
COPY api/fx/oracle ./api/fx/oracle
COPY api/fx/storage ./api/fx/storage
COPY api/gateway/chain ./api/gateway/chain
COPY api/gateway/mntx ./api/gateway/mntx
# 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 service dependencies
COPY --from=builder /src/api/payments/storage ./api/payments/storage
COPY --from=builder /src/api/ledger ./api/ledger
COPY --from=builder /src/api/billing/fees ./api/billing/fees
COPY --from=builder /src/api/fx/oracle ./api/fx/oracle
COPY --from=builder /src/api/fx/storage ./api/fx/storage
COPY --from=builder /src/api/gateway/chain ./api/gateway/chain
COPY --from=builder /src/api/gateway/mntx ./api/gateway/mntx
# Source code will be mounted at runtime
WORKDIR /src/api/payments/orchestrator
EXPOSE 50062 9403
CMD ["air", "-c", ".air.toml", "--", "-config.file", "/app/config.yml", "-debug"]