mirror of
https://github.com/criyle/go-judge.git
synced 2025-11-04 14:50:02 +08:00
27 lines
531 B
Docker
27 lines
531 B
Docker
FROM golang:alpine AS build
|
|
|
|
WORKDIR /go/judge
|
|
|
|
# CGO need g++, CGO is needed to compile c-shared
|
|
RUN apk --no-cache add build-base
|
|
|
|
COPY go.mod go.sum /go/judge/
|
|
|
|
RUN go mod download
|
|
|
|
COPY ./ /go/judge
|
|
|
|
RUN go build -o executorserver ./cmd/executorserver && \
|
|
go build -o cinit ./cmd/cinit && \
|
|
go build -buildmode=c-shared -o executor_server.so ./cmd/ffi/
|
|
|
|
FROM alpine:latest
|
|
|
|
WORKDIR /opt
|
|
|
|
COPY --from=build /go/judge/executorserver /go/judge/mount.yaml /opt/
|
|
|
|
EXPOSE 5050/tcp 5051/tcp
|
|
|
|
ENTRYPOINT ["./executorserver"]
|