ecs/Dockerfile

72 lines
1.9 KiB
Docker
Raw Normal View History

2025-06-04 18:17:39 +08:00
ARG VERSION
FROM golang:latest as builder
WORKDIR /projects/go
COPY ./framework ./framework
WORKDIR ./ecs
COPY ./ecs/platform ./platform
COPY ./ecs/proto ./proto
COPY ./ecs/servers/center ./servers/center
COPY ./ecs/servers/event ./servers/event
COPY ./ecs/servers/game ./servers/game
COPY ./ecs/servers/gate ./servers/gate
COPY ./ecs/go.mod ./go.mod
COPY ./ecs/go.sum ./go.sum
ENV CGO_ENABLED=0
ENV GOOS=linux
ENV GOARCH=amd64
ENV GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,direct
RUN go mod download
RUN go build -mod readonly -ldflags "-X 'framework/server.buildVersion=${VERSION}' -X 'framework/profile.Active=prod'" -o ./build/bin/ecs_center ./servers/center
RUN go build -mod readonly -ldflags "-X 'framework/server.buildVersion=${VERSION}' -X 'framework/profile.Active=prod'" -o ./build/bin/ecs_event ./servers/event
RUN go build -mod readonly -ldflags "-X 'framework/server.buildVersion=${VERSION}' -X 'framework/profile.Active=prod'" -o ./build/bin/ecs_game ./servers/game_1
RUN go build -mod readonly -ldflags "-X 'framework/server.buildVersion=${VERSION}' -X 'framework/profile.Active=prod'" -o ./build/bin/ecs_gate ./servers/gate
# Target event
FROM alpine:latest as center
WORKDIR /app/ecs/center
COPY --from=builder /projects/go/ecs/build/bin/ecs_center ./bin/ecs_center
CMD ./bin/ecs_center -conf /var/lib/ecs/center/conf/center_1.json
# Target event
FROM alpine:latest as event
WORKDIR /app/ecs/event
COPY --from=builder /projects/go/ecs/build/bin/ecs_event ./bin/ecs_event
CMD ./bin/ecs_event -conf /var/lib/ecs/event/conf/event_1.json
# Target game_1
FROM alpine:latest as game
WORKDIR /app/ecs/game
COPY --from=builder /projects/go/ecs/build/bin/ecs_game ./bin/ecs_game
CMD ./bin/ecs_game -conf /var/lib/ecs/game/conf/game_1.json
# Target gate
FROM alpine:latest as gate
WORKDIR /app/ecs/gate
COPY --from=builder /projects/go/ecs/build/bin/ecs_gate ./bin/ecs_gate
CMD ./bin/ecs_gate -conf /var/lib/ecs/gate/conf/gate_1.json