diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..76259f9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM golang:1.18 AS build +COPY / /src +WORKDIR /src +RUN --mount=type=cache,target=/go/pkg --mount=type=cache,target=/root/.cache/go-build make build-local-linux + +FROM ubuntu:22.04 AS base +ENV LANG=en_US.utf8 + +FROM base AS goreleaser +COPY kcl-openapi /usr/local/bin/kcl-openapi +RUN /usr/local/bin/kcl-openapi + +FROM base +COPY --from=build /src/_build/linux/kcl-openapi /usr/local/bin/kcl-openapi +RUN /usr/local/bin/kcl-openapi \ No newline at end of file diff --git a/Makefile b/Makefile index c9eed74..c31ec4c 100644 --- a/Makefile +++ b/Makefile @@ -14,3 +14,13 @@ check-fmt: regenerate: go run scripts/regenerate.go + +build-local-linux: + # Delete old artifacts + -rm -rf ./_build + mkdir -p ./_build/linux/ + + # Build kcl-openapi + GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \ + go build -o ./_build/linux/kcl-openapi \ + -ldflags="-s -w" . \ No newline at end of file