mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-27 00:19:36 -05:00
b461c40c3a
Signed-off-by: Daniel Weiße <dw@edgeless.systems>
64 lines
2.5 KiB
Docker
64 lines
2.5 KiB
Docker
FROM ubuntu@sha256:7cc0576c7c0ec2384de5cbf245f41567e922aab1b075f3e8ad565f508032df17 as build
|
|
|
|
ARG GO_VER=1.18
|
|
ARG GEN_GO_VER=1.28.0
|
|
ARG GEN_GO_GRPC_VER=1.2.0
|
|
ARG PB_VER=3.20.1
|
|
|
|
ENV DEBIAN_FRONTEND="noninteractive"
|
|
RUN apt-get update && apt-get install -y wget tar unzip
|
|
|
|
# Install Go
|
|
RUN wget https://go.dev/dl/go${GO_VER}.linux-amd64.tar.gz && \
|
|
tar -C /usr/local -xzf go${GO_VER}.linux-amd64.tar.gz && rm go${GO_VER}.linux-amd64.tar.gz
|
|
ENV PATH ${PATH}:/usr/local/go/bin:/root/go/bin
|
|
|
|
|
|
RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v${PB_VER}/protoc-${PB_VER}-linux-x86_64.zip && \
|
|
unzip protoc-${PB_VER}-linux-x86_64.zip -d /root/.local && \
|
|
cp /root/.local/bin/protoc /usr/local/bin/protoc
|
|
ENV PATH="$PATH:/root/.local/bin"
|
|
|
|
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v${GEN_GO_VER} && \
|
|
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v${GEN_GO_GRPC_VER}
|
|
|
|
# Generate code for every existing proto file
|
|
|
|
## Coordinator pubapi
|
|
WORKDIR /pubapi
|
|
COPY coordinator/pubapi/pubproto/*.proto /pubapi
|
|
RUN protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative *.proto
|
|
|
|
## Coordinator vpnapi
|
|
WORKDIR /vpnapi
|
|
COPY coordinator/vpnapi/vpnproto/*.proto /vpnapi
|
|
RUN protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative *.proto
|
|
|
|
## disk-mapper keyservice api
|
|
WORKDIR /disk-mapper
|
|
COPY state/keyservice/keyproto/*.proto /disk-mapper
|
|
RUN protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative *.proto
|
|
|
|
## debugd service
|
|
WORKDIR /service
|
|
COPY debugd/service/*.proto /service
|
|
RUN protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative *.proto
|
|
|
|
## key management
|
|
WORKDIR /kms
|
|
COPY kms/server/kmsapi/kmsproto/*.proto /kms
|
|
RUN protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative *.proto
|
|
|
|
## activation
|
|
WORKDIR /activation
|
|
COPY activation/activationproto/*.proto /activation
|
|
RUN protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative *.proto
|
|
|
|
FROM scratch as export
|
|
COPY --from=build /pubapi/*.go coordinator/pubapi/pubproto/
|
|
COPY --from=build /vpnapi/*.go coordinator/vpnapi/vpnproto/
|
|
COPY --from=build /disk-mapper/*.go state/keyservice/keyproto/
|
|
COPY --from=build /service/*.go debugd/service/
|
|
COPY --from=build /kms/*.go kms/server/kmsapi/kmsproto/
|
|
COPY --from=build /activation/*.go activation/activationproto/
|