diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..28ef08f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.env +.claude +.idea +Dockerfile +docker-compose.yml +build-docker.sh diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4175bf9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +# ---------- Builder Stage ---------- +FROM golang:1.24.2 AS builder +ARG GIT_AUTH_TOKEN +RUN git config --global url."https://${GIT_AUTH_TOKEN}:x-oauth-basic@git.denco.store/".insteadOf "https://git.denco.store/" + +WORKDIR /app + +# copy only go.mod and go.sum first +COPY go.mod go.sum ./ +RUN go mod download + +# now copy the rest of the code +COPY . . + +# build binaries +RUN CGO_ENABLED=0 GOOS=linux go build -o server ./cmd/server/main.go \ + && CGO_ENABLED=0 GOOS=linux go build -o tasks_server ./cmd/tasks_server/main.go + + + +# ---------- Final Image: Server ---------- +FROM gcr.io/distroless/static-debian12 AS server +WORKDIR /app +COPY --from=builder /app/server . +ENTRYPOINT ["./server"] + + +# ---------- Final Image: Tasks Server ---------- +FROM gcr.io/distroless/static-debian12 AS tasks_server +WORKDIR /app +COPY --from=builder /app/tasks_server . +ENTRYPOINT ["./tasks_server"] diff --git a/build-docker.sh b/build-docker.sh index 8bb9102..67e651a 100755 --- a/build-docker.sh +++ b/build-docker.sh @@ -1,9 +1,7 @@ -go build -o cmd/server/main cmd/server/main.go -go build -o cmd/tasks_server/main cmd/tasks_server/main.go -docker build -t git.denco.store/fakz9/sipro-marketplaces:latest cmd/server -docker build -t git.denco.store/fakz9/sipro-marketplaces-worker:latest cmd/tasks_server + docker build --build-arg GIT_AUTH_TOKEN=6d52710e6960046501f4ab5ab76b6e0c7c8d5a92 -t git.denco.store/fakz9/sipro-marketplaces:latest --target server . + docker build --build-arg GIT_AUTH_TOKEN=6d52710e6960046501f4ab5ab76b6e0c7c8d5a92 -t git.denco.store/fakz9/sipro-marketplaces-worker:latest --target tasks_server . docker push git.denco.store/fakz9/sipro-marketplaces:latest docker push git.denco.store/fakz9/sipro-marketplaces-worker:latest \ No newline at end of file diff --git a/cmd/server/Dockerfile b/cmd/server/Dockerfile deleted file mode 100644 index 59bbd6a..0000000 --- a/cmd/server/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM alpine:latest -WORKDIR /app -COPY main . -RUN apk add gcompat -CMD ["./main"] \ No newline at end of file diff --git a/cmd/tasks_server/Dockerfile b/cmd/tasks_server/Dockerfile deleted file mode 100644 index 59bbd6a..0000000 --- a/cmd/tasks_server/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM alpine:latest -WORKDIR /app -COPY main . -RUN apk add gcompat -CMD ["./main"] \ No newline at end of file