diff --git a/Makefile b/Makefile index e875a3e..417f50a 100644 --- a/Makefile +++ b/Makefile @@ -18,9 +18,13 @@ release: $(release_name) $(release_name): mkdir -p $@ +container: + podman build -t rexserver -f container/Containerfile . + clean: make -C ./rex_client clean make -C ./rex_server clean rm -rf *.tar.gz + rm -rf rexforge_* -.PHONY: release clean +.PHONY: release clean container diff --git a/container/Containerfile b/container/Containerfile new file mode 100644 index 0000000..e56067b --- /dev/null +++ b/container/Containerfile @@ -0,0 +1,24 @@ +FROM docker.io/golang:alpine as go +WORKDIR /build +# ADD rex_server/go.mod rex_server/go.sum ./ # WARNING: Include go.sum +ADD rex_server/go.mod ./ + +RUN go mod download + +# Add the rest of the source +ADD . . + +RUN go build -o ./rexserver ./rex_server/server.go + +# Runner image, drop privileges +FROM docker.io/alpine:latest as runner +RUN adduser -D nonroot +RUN addgroup nonroot nonroot +WORKDIR /app +RUN chown nonroot:nonroot /app + +COPY --from=go /build/rexserver rexserver +EXPOSE 8080 +USER nonroot:nonroot +CMD ["./rexserver"] +