diff --git a/flyteartifacts/Dockerfile b/flyteartifacts/Dockerfile new file mode 100644 index 0000000000..3a8f364b5c --- /dev/null +++ b/flyteartifacts/Dockerfile @@ -0,0 +1,43 @@ +FROM --platform=${BUILDPLATFORM} golang:1.19-alpine3.16 as builder + +ARG TARGETARCH +ENV GOARCH "${TARGETARCH}" +ENV GOOS linux + +RUN apk add git openssh-client make curl + +# Create the artifacts directory +RUN mkdir /artifacts + + +# COPY only the go mod files for efficient caching +COPY go.mod go.sum /go/src/github.com/flyteorg/flyte/flyteartifacts/ +WORKDIR /go/src/github.com/flyteorg/flyte/flyteartifacts/ + + +# Pull dependencies +RUN go mod download + +# COPY the rest of the source code +COPY . /go/src/github.com/flyteorg/flyte/flyteartifacts/ + +# This 'linux_compile' target should compile binaries to the /artifacts directory +# The main entrypoint should be compiled to /artifacts/flyteadmin +RUN make linux_compile + +# update the PATH to include the /artifacts directory +ENV PATH="/artifacts:${PATH}" + +# This will eventually move to centurylink/ca-certs:latest for minimum possible image size +FROM alpine:3.16 +LABEL org.opencontainers.image.source https://github.com/flyteorg/flyte/ + +COPY --from=builder /artifacts /bin + +# Ensure the latest CA certs are present to authenticate SSL connections. +RUN apk --update add ca-certificates + +RUN addgroup -S flyte && adduser -S flyte -G flyte +USER flyte + +CMD ["artifacts"] diff --git a/flyteartifacts/Makefile b/flyteartifacts/Makefile new file mode 100644 index 0000000000..fbbfa915dd --- /dev/null +++ b/flyteartifacts/Makefile @@ -0,0 +1,6 @@ + +.PHONY: linux_compile +linux_compile: export CGO_ENABLED ?= 0 +linux_compile: export GOOS ?= linux +linux_compile: + go build -o /artifacts/flyteadmin -ldflags=$(LD_FLAGS) ./cmd/ diff --git a/flyteartifacts/go.mod b/flyteartifacts/go.mod index b377cf137c..874838cdc5 100644 --- a/flyteartifacts/go.mod +++ b/flyteartifacts/go.mod @@ -21,4 +21,4 @@ require ( google.golang.org/protobuf v1.30.0 // indirect ) -replace github.com/flyteorg/flyteidl => ../flyteidl +replace github.com/flyteorg/flyteidl => github.com/flyteorg/flyteidl v1.5.14-0.20230928230632-4854ce7ad143 diff --git a/flyteartifacts/go.sum b/flyteartifacts/go.sum index 9965234fef..458e8a34b8 100644 --- a/flyteartifacts/go.sum +++ b/flyteartifacts/go.sum @@ -1,4 +1,6 @@ github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/flyteorg/flyteidl v1.5.14-0.20230928230632-4854ce7ad143 h1:H8SEoRv2bgdXPIAxQS2iHUkmd8YW38uTUtfl3a4LKu4= +github.com/flyteorg/flyteidl v1.5.14-0.20230928230632-4854ce7ad143/go.mod h1:EtE/muM2lHHgBabjYcxqe9TWeJSL0kXwbI0RgVwI4Og= github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=