From d9463bfa43177ab3590cdc575cf4f8f310ed9d9c Mon Sep 17 00:00:00 2001 From: Malte Bauch <malte.bauch@stud.h-da.de> Date: Thu, 16 Nov 2023 18:56:36 +0100 Subject: [PATCH] Add a Dockerfile and gitignore --- .dockerignore | 1 + .gitignore | 1 + Dockerfile | 23 +++++++++++++++++++++++ Makefile | 19 +++++++++++++++++++ 4 files changed, 44 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 Makefile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..de153db3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +artifacts diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..de153db3 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +artifacts diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..31b9ebe7 --- /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 00000000..96932cd2 --- /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 . -- GitLab