diff --git a/runners/Dockerfile b/runners/Dockerfile new file mode 100644 index 000000000..e77f542be --- /dev/null +++ b/runners/Dockerfile @@ -0,0 +1,31 @@ +ARG FEATUREBASE_URL=https://github.com/FeatureBaseDB/featurebase/releases/download/v1.1.0-community/featurebase-v1.1.0-community-linux-amd64.tar.gz + +# builder is responsible for downloads and conforming to naming conventions +FROM alpine:latest as builder +ARG FEATUREBASE_URL + +RUN wget -O featurebase.tar.gz ${FEATUREBASE_URL} +RUN tar -zxvf featurebase.tar.gz +RUN mv featurebase-v*/ featurebase/ +RUN mv idk-v*/ idk/ + +### +# runner for featurebase binary +FROM alpine:latest as featurebase +COPY --from=builder /featurebase /usr/local/bin +WORKDIR /home/featurebase + +### +# runner for IDK +FROM alpine:latest as ingest +COPY --from=builder /idk /idk +WORKDIR idk + +# Alpine tar command seems to leave meta files behind, this removes them +RUN rm \._* +RUN chmod ug+x * + +RUN mv /idk/* /usr/local/bin +RUN rm -rf /idk + +WORKDIR /home/ingester diff --git a/runners/Makefile b/runners/Makefile new file mode 100644 index 000000000..11203e37d --- /dev/null +++ b/runners/Makefile @@ -0,0 +1,14 @@ +.PHONY: build-runners push-runners + +TAG_ROOT=ghcr.io/featurebasedb/examples +TAG_FB_RUNNER=$(TAG_ROOT)/featurebase-runner +TAG_INGEST_RUNNER=$(TAG_ROOT)/ingest-runner +TAG_VERSION=latest + +build-runners: + docker build --target=featurebase -t$(TAG_FB_RUNNER):$(TAG_VERSION) -f Dockerfile ../ + docker build --target=ingest -t$(TAG_INGEST_RUNNER):$(TAG_VERSION) -f Dockerfile ../ + +push-runners: + docker push $(TAG_FB_RUNNER):$(TAG_VERSION) + docker push $(TAG_INGEST_RUNNER):$(TAG_VERSION) diff --git a/runners/README.md b/runners/README.md new file mode 100644 index 000000000..a3bedae17 --- /dev/null +++ b/runners/README.md @@ -0,0 +1,10 @@ +# FeatureBase Runners + +Docker images for running FeatureBase. + +## Build and Push Runners + +`make build-runners` +`make push-runners` + +** Requires the user to log into the target docker repository. ** \ No newline at end of file