graphql-engine/server/packaging/Dockerfile

27 lines
914 B
Docker
Raw Normal View History

ARG stack_resolver
ARG packager_version
# Stage 1: build the application
FROM fpco/stack-build:${stack_resolver} as builder
ARG stack_flags=""
ARG build_flags=""
ARG project="graphql-engine"
RUN mkdir /build
COPY . /build/
WORKDIR /build
RUN stack --system-ghc ${stack_flags} build ${build_flags}
RUN cp $(stack --system-ghc path --dist-dir)/build/${project}/${project} /build
# Stage 2: package the app into a busybox rootfs, strip, compress etc.
FROM hasura/graphql-engine-packager:${packager_version} as packager
ARG project="graphql-engine"
RUN mkdir -p /packaging/build/rootfs
COPY --from=builder /build/${project} /root/
RUN /build.sh ${project} | tar -xC /packaging/build/rootfs
RUN strip --strip-unneeded /packaging/build/rootfs/bin/${project}
RUN upx /packaging/build/rootfs/bin/${project}
# Stage 3: copy the rootfs into a scratch container
FROM scratch
COPY --from=packager /packaging/build/rootfs /