diff --git a/Makefile b/Makefile index f6fc051..417f50a 100644 --- a/Makefile +++ b/Makefile @@ -7,14 +7,24 @@ release: $(release_name) mv ./rex_client/rexclient $(release_name) mv ./rex_server/rexserver $(release_name) cp ./LICENSE.txt $(release_name) + cp ./README.md $(release_name) + mkdir -p $(release_name)/source + git ls-files | xargs -I{} cp --parents {} $(release_name)/source + date -I > $(release_name)/VERSION.txt + echo $(rev) >> $(release_name)/VERSION.txt + go version >> $(release_name)/VERSION.txt tar cvzf $(release_name).tar.gz $(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"] +