diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000000000000000000000000000000000..de153db3b796413119418ec4b9f82dad2e8cb939 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +artifacts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..de153db3b796413119418ec4b9f82dad2e8cb939 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +artifacts diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..31b9ebe7275af2a4d964d2e0687036195a3d5699 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +ARG GOLANG_VERSION=1.21 +ARG BUILDARGS +ARG ACCESS_TOKEN_USR="nothing" +ARG ACCESS_TOKEN_PWD="nothing" + +FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-bookworm as builder +WORKDIR /quantumlayer/ +COPY . . +# based on https://jwenz723.medium.com/fetching-private-go-modules-during-docker-build-5b76aa690280 +RUN printf "machine code.fbi.h-da.de\n\ + login ${ACCESS_TOKEN_USR}\n\ + password ${ACCESS_TOKEN_PWD}\n\ + \n"\ + >> /root/.netrc +RUN chmod 600 /root/.netrc +RUN --mount=type=cache,target=/root/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + make build + +FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-bookworm +WORKDIR /app/ +COPY --from=builder /quantumlayer/artifacts/quantumlayer ./quantumlayer +ENTRYPOINT ["./quantumlayer"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..96932cd259b7332d370b66fbb98296f5d401f0ce --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST))) +MAKEFILE_DIR := $(dir $(MAKEFILE_PATH)) +GOPATH := $(~/go) + +GOCMD=go +GOBUILD=$(GOCMD) build +GOCLEAN=$(GOCMD) clean +BUILD_ARTIFACTS_PATH=artifacts + +all: build + +pre: + mkdir -p $(BUILD_ARTIFACTS_PATH) + +build: pre + $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/quantumlayer ./example/main.go + +container: build + docker buildx build --rm -t quantumlayer --load -f ./Dockerfile .