From 02d77a4f4f50c6ed8c49ce90ea2e307d319bbd24 Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Wed, 23 Jul 2025 15:33:57 +0200 Subject: [PATCH] fix console build --- Makefile | 16 +- build/Dockerfile.gitignore | 3 - .../login/.dockerignore | 0 .../login/Dockerfile | 0 build/workflow.Dockerfile | 296 ------------------ build/zitadel/.dockerignore | 3 + build/{ => zitadel}/Dockerfile | 2 +- build/{ => zitadel}/entrypoint.sh | 0 build/zitadel/generate-grpc.sh | 0 dockerfiles/proto-files.Dockerfile | 8 - .../proto-files.Dockerfile.dockerignore | 2 - .../typescript-proto-client.Dockerfile | 8 - ...cript-proto-client.Dockerfile.dockerignore | 11 - 13 files changed, 9 insertions(+), 340 deletions(-) delete mode 100644 build/Dockerfile.gitignore rename dockerfiles/login.Dockerfile.dockerignore => build/login/.dockerignore (100%) rename dockerfiles/login.Dockerfile => build/login/Dockerfile (100%) delete mode 100644 build/workflow.Dockerfile create mode 100644 build/zitadel/.dockerignore rename build/{ => zitadel}/Dockerfile (93%) rename build/{ => zitadel}/entrypoint.sh (100%) delete mode 100755 build/zitadel/generate-grpc.sh delete mode 100644 dockerfiles/proto-files.Dockerfile delete mode 100644 dockerfiles/proto-files.Dockerfile.dockerignore delete mode 100644 dockerfiles/typescript-proto-client.Dockerfile delete mode 100644 dockerfiles/typescript-proto-client.Dockerfile.dockerignore diff --git a/Makefile b/Makefile index 8dc62938fa..ad561ab725 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ docker_image: else \ echo "Reusing precompiled zitadel binary"; \ fi - DOCKER_BUILDKIT=1 docker build -f build/Dockerfile -t $(ZITADEL_IMAGE) . + DOCKER_BUILDKIT=1 docker build -f build/zitadel/Dockerfile -t $(ZITADEL_IMAGE) . .PHONY: compile_pipeline compile_pipeline: console_move @@ -97,17 +97,11 @@ console_move: .PHONY: console_dependencies console_dependencies: - pnpm install --frozen-lockfile - -.PHONY: console_client -console_client: - cd console && \ - pnpm generate + npx pnpm install --frozen-lockfile --filter=./console .PHONY: console_build -console_build: console_dependencies console_client - cd console && \ - pnpm build +console_build: console_dependencies + npx pnpm turbo build --filter=./console .PHONY: clean clean: @@ -165,7 +159,7 @@ core_integration_test: core_integration_server_start core_integration_test_packa .PHONY: console_lint console_lint: - pnpm turbo lint --filter=./console + npx pnpm turbo lint --filter=./console .PHONY: core_lint core_lint: diff --git a/build/Dockerfile.gitignore b/build/Dockerfile.gitignore deleted file mode 100644 index a2cc8ed480..0000000000 --- a/build/Dockerfile.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -!build/entrypoint.sh -!zitadel diff --git a/dockerfiles/login.Dockerfile.dockerignore b/build/login/.dockerignore similarity index 100% rename from dockerfiles/login.Dockerfile.dockerignore rename to build/login/.dockerignore diff --git a/dockerfiles/login.Dockerfile b/build/login/Dockerfile similarity index 100% rename from dockerfiles/login.Dockerfile rename to build/login/Dockerfile diff --git a/build/workflow.Dockerfile b/build/workflow.Dockerfile deleted file mode 100644 index 573e13891a..0000000000 --- a/build/workflow.Dockerfile +++ /dev/null @@ -1,296 +0,0 @@ -# ############################################################################## -# core -# ############################################################################## - -# ####################################### -# download dependencies -# ####################################### -FROM golang:buster AS core-deps - -WORKDIR /go/src/github.com/zitadel/zitadel - -COPY go.mod . -COPY go.sum . - -RUN go mod download - -# ####################################### -# compile custom protoc plugins -# ####################################### -FROM golang:buster AS core-api-generator - -WORKDIR /go/src/github.com/zitadel/zitadel - -COPY go.mod . -COPY go.sum . -COPY internal/protoc internal/protoc -COPY pkg/grpc/protoc/v2 pkg/grpc/protoc/v2 - -RUN go install internal/protoc/protoc-gen-authoption/main.go \ - && mv $(go env GOPATH)/bin/main $(go env GOPATH)/bin/protoc-gen-authoption \ - && go install internal/protoc/protoc-gen-zitadel/main.go \ - && mv $(go env GOPATH)/bin/main $(go env GOPATH)/bin/protoc-gen-zitadel - -# ####################################### -# build backend stub -# ####################################### -FROM golang:buster AS core-api - -WORKDIR /go/src/github.com/zitadel/zitadel - -COPY go.mod . -COPY go.sum . -COPY proto proto -COPY buf.*.yaml . -COPY Makefile Makefile -COPY --from=core-api-generator /go/bin /usr/local/bin - -RUN make grpc - -# ####################################### -# generate code for login ui -# ####################################### -FROM golang:buster AS core-login - -WORKDIR /go/src/github.com/zitadel/zitadel - -COPY Makefile Makefile -COPY internal/api/ui/login/static internal/api/ui/login/static -COPY internal/api/ui/login/statik internal/api/ui/login/statik -COPY internal/notification/static internal/notification/static -COPY internal/notification/statik internal/notification/statik -COPY internal/static internal/static -COPY internal/statik internal/statik - -RUN make static - -# ####################################### -# generate code for assets -# ####################################### -FROM golang:buster AS core-assets -WORKDIR /go/src/github.com/zitadel/zitadel - -COPY go.mod . -COPY go.sum . -COPY Makefile Makefile -COPY internal/api/assets/generator internal/api/assets/generator -COPY internal/config internal/config -COPY internal/errors internal/errors -COPY --from=core-api /go/src/github.com/zitadel/zitadel/openapi/v2 openapi/v2 - -RUN make assets - -# ####################################### -# Gather all core files -# ####################################### -FROM core-deps AS core-gathered - -COPY cmd cmd -COPY internal internal -COPY pkg pkg -COPY proto proto -COPY openapi openapi -COPY statik statik -COPY main.go main.go -COPY --from=core-api /go/src/github.com/zitadel/zitadel . -COPY --from=core-login /go/src/github.com/zitadel/zitadel . -COPY --from=core-assets /go/src/github.com/zitadel/zitadel/internal ./internal - -# ############################################################################## -# build console -# ############################################################################## - -# ####################################### -# download console dependencies -# ####################################### -FROM node:20-buster AS console-deps - -WORKDIR /zitadel/console - -COPY pnpm-lock.yaml . -COPY pnpm-workspace.yaml . -COPY console/package.json console/ - -RUN corepack enable pnpm && pnpm install --frozen-lockfile --filter=console - -# ####################################### -# generate console client -# ####################################### -FROM node:20-buster AS console-client - -WORKDIR /zitadel/console - -# install buf -COPY --from=bufbuild/buf:latest /usr/local/bin/* /usr/local/bin/ -ENV PATH="/usr/local/bin:${PATH}" - -COPY console/package.json . -COPY console/buf.*.yaml . -COPY proto ../proto - -RUN pnpm generate - -# ####################################### -# Gather all console files -# ####################################### -FROM console-deps as console-gathered - -COPY --from=console-client /zitadel/console/src/app/proto/generated src/app/proto/generated - -COPY console/src src -COPY console/angular.json . -COPY console/ngsw-config.json . -COPY console/tsconfig* . - -# ####################################### -# Build console -# ####################################### -FROM console-gathered AS console -RUN pnpm build - -# ############################################################################## -# build the executable -# ############################################################################## - -# ####################################### -# build executable -# ####################################### -FROM core-gathered AS compile - -ARG GOOS -ARG GOARCH - -COPY --from=console /zitadel/console/dist/console internal/api/ui/console/static/ - -RUN go build -o zitadel -ldflags="-s -w -race" \ - && chmod +x zitadel - -ENTRYPOINT [ "./zitadel" ] - -# ####################################### -# copy executable -# ####################################### -FROM scratch AS copy-executable -ARG GOOS -ARG GOARCH - -COPY --from=compile /go/src/github.com/zitadel/zitadel/zitadel /.artifacts/zitadel - -# ############################################################################## -# tests -# ############################################################################## -FROM ubuntu/postgres:latest AS test-core-base - -ARG DEBIAN_FRONTEND=noninteractive - -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - gcc \ - make \ - ca-certificates \ - gcc \ - && \ - update-ca-certificates; \ - rm -rf /var/lib/apt/lists/* - -# install go -COPY --from=golang:latest /usr/local/go/ /usr/local/go/ -ENV PATH="/go/bin:/usr/local/go/bin:${PATH}" - -WORKDIR /go/src/github.com/zitadel/zitadel - -# default vars -ENV POSTGRES_USER=zitadel -ENV POSTGRES_DB=zitadel -ENV POSTGRES_PASSWORD=postgres -ENV POSTGRES_HOST_AUTH_METHOD=trust - -ENV PGUSER=zitadel -ENV PGDATABASE=zitadel -ENV PGPASSWORD=postgres - -ENV CGO_ENABLED=1 - -# copy zitadel files -COPY --from=core-deps /go/pkg/mod /root/go/pkg/mod -COPY --from=core-gathered /go/src/github.com/zitadel/zitadel . - -# ####################################### -# unit test core -# ####################################### -FROM test-core-base AS test-core-unit -RUN go test -race -v -coverprofile=profile.cov ./... - -# ####################################### -# coverage output -# ####################################### -FROM scratch AS coverage-core-unit -COPY --from=test-core-unit /go/src/github.com/zitadel/zitadel/profile.cov /coverage/ - -# ####################################### -# integration test core -# ####################################### -FROM test-core-base AS test-core-integration -ENV ZITADEL_MASTERKEY=MasterkeyNeedsToHave32Characters - -COPY build/core-integration-test.sh /usr/local/bin/run-tests.sh -RUN chmod +x /usr/local/bin/run-tests.sh - -RUN run-tests.sh - -# ####################################### -# coverage output -# ####################################### -FROM scratch AS coverage-core-integration -COPY --from=test-core-integration /go/src/github.com/zitadel/zitadel/profile.cov /coverage/ - -# ############################################################################## -# linting -# ############################################################################## - -# ####################################### -# api -# ####################################### -FROM bufbuild/buf:latest AS lint-api - -COPY proto proto -COPY buf.*.yaml . - -RUN buf lint - -# ####################################### -# console -# ####################################### -FROM console-gathered AS lint-console - -COPY console/.eslintrc.js . -COPY console/.prettier* . -RUN pnpm lint - -# ####################################### -# core -# ####################################### -FROM golangci/golangci-lint:latest AS lint-core -ARG LINT_EXIT_CODE=1 - -WORKDIR /go/src/github.com/zitadel/zitadel - -COPY .golangci.yaml . -COPY .git/ .git/ -COPY --from=core-deps /go/pkg/mod /go/pkg/mod -COPY --from=core-gathered /go/src/github.com/zitadel/zitadel . - -RUN git fetch https://github.com/zitadel/zitadel main:main - -RUN golangci-lint run \ - --timeout 10m \ - --config ./.golangci.yaml \ - --out-format=github-actions:report,colored-line-number \ - --issues-exit-code=${LINT_EXIT_CODE} \ - --concurrency=$(getconf _NPROCESSORS_ONLN) - -# ####################################### -# report output -# ####################################### -FROM scratch AS lint-core-report -COPY --from=lint-core /go/src/github.com/zitadel/zitadel/report . \ No newline at end of file diff --git a/build/zitadel/.dockerignore b/build/zitadel/.dockerignore new file mode 100644 index 0000000000..83c401b28a --- /dev/null +++ b/build/zitadel/.dockerignore @@ -0,0 +1,3 @@ +* +!build/zitadel/entrypoint.sh +!zitadel diff --git a/build/Dockerfile b/build/zitadel/Dockerfile similarity index 93% rename from build/Dockerfile rename to build/zitadel/Dockerfile index 769f04023e..4abc1f388c 100644 --- a/build/Dockerfile +++ b/build/zitadel/Dockerfile @@ -4,7 +4,7 @@ ARG TARGETPLATFORM RUN apt-get update && apt-get install ca-certificates -y -COPY build/entrypoint.sh /app/entrypoint.sh +COPY build/zitadel/entrypoint.sh /app/entrypoint.sh COPY zitadel /app/zitadel RUN useradd -s "" --home / zitadel && \ diff --git a/build/entrypoint.sh b/build/zitadel/entrypoint.sh similarity index 100% rename from build/entrypoint.sh rename to build/zitadel/entrypoint.sh diff --git a/build/zitadel/generate-grpc.sh b/build/zitadel/generate-grpc.sh deleted file mode 100755 index e69de29bb2..0000000000 diff --git a/dockerfiles/proto-files.Dockerfile b/dockerfiles/proto-files.Dockerfile deleted file mode 100644 index 0af3346096..0000000000 --- a/dockerfiles/proto-files.Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM bufbuild/buf:1.54.0 AS proto-files -RUN buf export https://github.com/envoyproxy/protoc-gen-validate.git --path validate --output /proto-files && \ - buf export https://github.com/grpc-ecosystem/grpc-gateway.git --path protoc-gen-openapiv2 --output /proto-files && \ - buf export https://github.com/googleapis/googleapis.git --path google/api/annotations.proto --path google/api/http.proto --path google/api/field_behavior.proto --output /proto-files - -FROM scratch -COPY --from=proto-files /proto-files / -COPY ./proto / diff --git a/dockerfiles/proto-files.Dockerfile.dockerignore b/dockerfiles/proto-files.Dockerfile.dockerignore deleted file mode 100644 index e26cd3c2d6..0000000000 --- a/dockerfiles/proto-files.Dockerfile.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!proto diff --git a/dockerfiles/typescript-proto-client.Dockerfile b/dockerfiles/typescript-proto-client.Dockerfile deleted file mode 100644 index 4a9505d19d..0000000000 --- a/dockerfiles/typescript-proto-client.Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM login-pnpm AS typescript-proto-client -COPY ./login/packages/zitadel-proto/package.json ./packages/zitadel-proto/ -RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ - pnpm install --frozen-lockfile --workspace-root --filter zitadel-proto -COPY --from=proto-files /buf.yaml /buf.lock /proto-files/ -COPY --from=proto-files /zitadel /proto-files/zitadel -COPY ./login/packages/zitadel-proto/buf.gen.yaml ./packages/zitadel-proto/ -RUN cd packages/zitadel-proto && pnpm exec buf generate /proto-files diff --git a/dockerfiles/typescript-proto-client.Dockerfile.dockerignore b/dockerfiles/typescript-proto-client.Dockerfile.dockerignore deleted file mode 100644 index 3915a26e4e..0000000000 --- a/dockerfiles/typescript-proto-client.Dockerfile.dockerignore +++ /dev/null @@ -1,11 +0,0 @@ -* -!/login/packages/zitadel-proto/ -login/packages/zitadel-proto/google -login/packages/zitadel-proto/zitadel -login/packages/zitadel-proto/protoc-gen-openapiv2 -login/packages/zitadel-proto/validate - -**/*.md -**/*.png -**/node_modules -**/.turbo