mirror of
https://github.com/zitadel/zitadel.git
synced 2025-03-01 02:17:23 +00:00
not nice but running
This commit is contained in:
parent
a203b85a59
commit
7d28887cd2
58
Dockerfile
58
Dockerfile
@ -1,58 +0,0 @@
|
|||||||
ARG NODE_VERSION=22
|
|
||||||
ARG GO_VERSION=1.23
|
|
||||||
|
|
||||||
## Console
|
|
||||||
FROM node:${NODE_VERSION} AS console-base
|
|
||||||
WORKDIR /app
|
|
||||||
COPY console/package.json console/yarn.lock console/buf.gen.yaml ./
|
|
||||||
COPY proto/ ../proto/
|
|
||||||
RUN yarn install && yarn generate
|
|
||||||
COPY console/ .
|
|
||||||
COPY docs/frameworks.json ../docs/frameworks.json
|
|
||||||
|
|
||||||
FROM console-base AS console-build
|
|
||||||
RUN yarn build
|
|
||||||
|
|
||||||
FROM console-base AS console-lint
|
|
||||||
RUN yarn lint
|
|
||||||
|
|
||||||
FROM nginx:stable-alpine AS console-image
|
|
||||||
RUN rm -rf /usr/share/nginx/html/*
|
|
||||||
COPY .build/console/nginx.conf /etc/nginx/nginx.conf
|
|
||||||
COPY --from=console-build /app/dist /usr/share/nginx/html
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
|
||||||
|
|
||||||
FROM scratch AS console-output
|
|
||||||
COPY --from=console-build /app/dist/console .
|
|
||||||
|
|
||||||
## Core
|
|
||||||
FROM golang:${GO_VERSION} AS core-base
|
|
||||||
ARG SASS_VERSION=1.64.1
|
|
||||||
ARG GOLANG_CI_VERSION=1.64.5
|
|
||||||
RUN apt-get update && apt-get install -y npm && npm install -g sass@${SASS_VERSION}
|
|
||||||
RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v${GOLANG_CI_VERSION}
|
|
||||||
WORKDIR /app
|
|
||||||
COPY go.mod go.sum Makefile buf.gen.yaml buf.work.yaml main.go .golangci.yaml ./
|
|
||||||
COPY .git/ .git/
|
|
||||||
COPY cmd/ cmd/
|
|
||||||
COPY internal/ internal/
|
|
||||||
COPY openapi/ openapi/
|
|
||||||
COPY pkg/ pkg/
|
|
||||||
COPY proto/ proto/
|
|
||||||
COPY statik/ statik/
|
|
||||||
COPY --from=console-build /app/dist/console internal/api/ui/console/static
|
|
||||||
RUN make core_build
|
|
||||||
|
|
||||||
FROM core-base AS core-build
|
|
||||||
RUN make compile
|
|
||||||
|
|
||||||
FROM core-base AS core-lint
|
|
||||||
RUN make core_lint
|
|
||||||
|
|
||||||
FROM scratch AS core-output
|
|
||||||
COPY --from=core-build /app/zitadel .
|
|
||||||
|
|
||||||
FROM core-base AS core-image
|
|
||||||
|
|
||||||
FROM core-base AS core-unit-test
|
|
||||||
RUN make core_unit_test
|
|
22
Dockerfile.console
Normal file
22
Dockerfile.console
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
FROM node AS base
|
||||||
|
WORKDIR /app
|
||||||
|
COPY console/package.json console/yarn.lock console/buf.gen.yaml ./
|
||||||
|
COPY proto/ ../proto/
|
||||||
|
RUN yarn install && yarn generate
|
||||||
|
COPY console/ .
|
||||||
|
COPY docs/frameworks.json ../docs/frameworks.json
|
||||||
|
|
||||||
|
FROM base AS build
|
||||||
|
RUN yarn build
|
||||||
|
|
||||||
|
FROM base AS lint
|
||||||
|
RUN yarn lint
|
||||||
|
|
||||||
|
FROM nginx AS image
|
||||||
|
RUN rm -rf /usr/share/nginx/html/*
|
||||||
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
|
COPY --from=build /app/dist /usr/share/nginx/html
|
||||||
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
|
|
||||||
|
FROM scratch AS output
|
||||||
|
COPY --from=build /app/dist/console .
|
54
Dockerfile.core
Normal file
54
Dockerfile.core
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
FROM golang AS base
|
||||||
|
ARG SASS_VERSION=
|
||||||
|
ARG GOLANG_CI_VERSION=
|
||||||
|
RUN apt-get update && apt-get install -y npm && npm install -g sass@${SASS_VERSION}
|
||||||
|
RUN curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s -- -b $(go env GOPATH)/bin v${GOLANG_CI_VERSION}
|
||||||
|
WORKDIR /app
|
||||||
|
COPY go.mod go.sum Makefile buf.gen.yaml buf.work.yaml main.go .golangci.yaml ./
|
||||||
|
COPY .git/ .git/
|
||||||
|
COPY cmd/ cmd/
|
||||||
|
COPY internal/ internal/
|
||||||
|
COPY openapi/ openapi/
|
||||||
|
COPY pkg/ pkg/
|
||||||
|
COPY proto/ proto/
|
||||||
|
COPY statik/ statik/
|
||||||
|
COPY --from=console ./ internal/api/ui/console/static
|
||||||
|
RUN make core_build
|
||||||
|
|
||||||
|
FROM base AS build
|
||||||
|
RUN make compile_pipeline
|
||||||
|
RUN ls -la && pwd
|
||||||
|
|
||||||
|
FROM base AS lint
|
||||||
|
RUN make core_lint
|
||||||
|
|
||||||
|
FROM scratch AS output
|
||||||
|
COPY --from=build /app/zitadel .
|
||||||
|
|
||||||
|
FROM base AS unit-test
|
||||||
|
RUN make core_unit_test
|
||||||
|
|
||||||
|
FROM debian:latest AS base-image
|
||||||
|
ENV ZITADEL_ARGS=
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
RUN apt-get update && apt-get install ca-certificates -y
|
||||||
|
COPY build/entrypoint.sh /app/entrypoint.sh
|
||||||
|
COPY --from=build /app/zitadel /app/zitadel
|
||||||
|
RUN useradd -s "" --home / zitadel && \
|
||||||
|
chown zitadel /app/zitadel && \
|
||||||
|
chmod +x /app/zitadel && \
|
||||||
|
chown zitadel /app/entrypoint.sh && \
|
||||||
|
chmod +x /app/entrypoint.sh
|
||||||
|
WORKDIR /app
|
||||||
|
ENV PATH="/app:${PATH}"
|
||||||
|
USER zitadel
|
||||||
|
ENTRYPOINT ["/app/entrypoint.sh"]
|
||||||
|
|
||||||
|
FROM scratch AS image
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
COPY --from=base-image /etc/passwd /etc/passwd
|
||||||
|
COPY --from=base-image /etc/ssl/certs /etc/ssl/certs
|
||||||
|
COPY --from=base-image /app/zitadel /app/zitadel
|
||||||
|
HEALTHCHECK NONE
|
||||||
|
USER zitadel
|
||||||
|
ENTRYPOINT ["/app/zitadel"]
|
114
docker-bake.hcl
114
docker-bake.hcl
@ -3,11 +3,7 @@ variable "GITHUB_SHA" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
variable "REGISTRY" {
|
variable "REGISTRY" {
|
||||||
default = "ghcr.io/fforootd"
|
default = "ghcr.io/zitadel"
|
||||||
}
|
|
||||||
|
|
||||||
group "generate" {
|
|
||||||
targets = ["console-base", "core-base"]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
group "build" {
|
group "build" {
|
||||||
@ -18,62 +14,70 @@ group "output" {
|
|||||||
targets = ["console-output", "core-output"]
|
targets = ["console-output", "core-output"]
|
||||||
}
|
}
|
||||||
|
|
||||||
group "unit-test" {
|
group "image" {
|
||||||
targets = ["core-unit-test"]
|
targets = ["console-image", "core-image"]
|
||||||
}
|
}
|
||||||
|
|
||||||
group "lint" {
|
target "_console" {
|
||||||
targets = ["console-lint", "core-lint"]
|
dockerfile = "Dockerfile.console"
|
||||||
|
context = "."
|
||||||
|
contexts = {
|
||||||
|
node = "docker-image://node:22"
|
||||||
|
nginx = "docker-image://nginx:1.27-alpine"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
target "console-base" {
|
target "console" {
|
||||||
target = "console-base"
|
name = "console-${tgt}"
|
||||||
|
inherits = ["_console"]
|
||||||
|
matrix = {
|
||||||
|
tgt = ["build", "output", "lint", "image"]
|
||||||
|
}
|
||||||
|
output = {
|
||||||
|
"build" = ["type=cacheonly"]
|
||||||
|
"output" = ["type=local,dest=.build/console"]
|
||||||
|
"lint" = ["type=cacheonly"]
|
||||||
|
"image" = ["type=docker"]
|
||||||
|
}[tgt]
|
||||||
|
tags = {
|
||||||
|
"build" = []
|
||||||
|
"output" = []
|
||||||
|
"lint" = []
|
||||||
|
"image" = ["${REGISTRY}/console:latest"]
|
||||||
|
}[tgt]
|
||||||
|
target = tgt
|
||||||
}
|
}
|
||||||
|
|
||||||
target "console-build" {
|
target "_core" {
|
||||||
target = "console-build"
|
dockerfile = "Dockerfile.core"
|
||||||
|
context = "."
|
||||||
|
contexts = {
|
||||||
|
node = "docker-image://golang:1.23"
|
||||||
|
console = "target:console-output"
|
||||||
|
}
|
||||||
|
args = {
|
||||||
|
SASS_VERSION = "1.64.1"
|
||||||
|
GOLANG_CI_VERSION = "1.64.5"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
target "console-lint" {
|
target "core" {
|
||||||
target = "console-lint"
|
name = "core-${tgt}"
|
||||||
}
|
inherits = ["_core"]
|
||||||
|
matrix = {
|
||||||
target "console-image" {
|
tgt = ["build", "output", "lint", "image"]
|
||||||
target = "console-image"
|
}
|
||||||
tags = [
|
output = {
|
||||||
"${REGISTRY}/console:${GITHUB_SHA}",
|
"build" = ["type=cacheonly"]
|
||||||
]
|
"output" = ["type=local,dest=.build/core"]
|
||||||
}
|
"lint" = ["type=cacheonly"]
|
||||||
|
"image" = ["type=docker"]
|
||||||
target "console-output" {
|
}[tgt]
|
||||||
target = "console-output"
|
tags = {
|
||||||
output = ["type=local,dest=.build/console"]
|
"build" = []
|
||||||
}
|
"output" = []
|
||||||
|
"lint" = []
|
||||||
target "core-base" {
|
"image" = ["${REGISTRY}/zitadel:latest"]
|
||||||
target = "core-base"
|
}[tgt]
|
||||||
}
|
target = tgt
|
||||||
|
|
||||||
target "core-build" {
|
|
||||||
target = "core-build"
|
|
||||||
}
|
|
||||||
|
|
||||||
target "core-lint" {
|
|
||||||
target = "core-lint"
|
|
||||||
}
|
|
||||||
|
|
||||||
target "core-image" {
|
|
||||||
target = "core-image"
|
|
||||||
tags = [
|
|
||||||
"${REGISTRY}/zitadel:${GITHUB_SHA}",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
target "core-output" {
|
|
||||||
target = "core-output"
|
|
||||||
output = ["type=local,dest=.build/core"]
|
|
||||||
}
|
|
||||||
|
|
||||||
target "core-unit-test" {
|
|
||||||
target = "core-unit-test"
|
|
||||||
}
|
}
|
27
nginx.conf
Normal file
27
nginx.conf
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# the events block is required
|
||||||
|
events{}
|
||||||
|
|
||||||
|
http {
|
||||||
|
# include the default mime.types to map file extensions to MIME types
|
||||||
|
include /etc/nginx/mime.types;
|
||||||
|
|
||||||
|
server {
|
||||||
|
# set the root directory for the server (we need to copy our
|
||||||
|
# application files here)
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
|
||||||
|
# set the default index file for the server (Angular generates the
|
||||||
|
# index.html file for us and it will be in the above directory)
|
||||||
|
index index.html;
|
||||||
|
|
||||||
|
# specify the configuration for the '/' location
|
||||||
|
location / {
|
||||||
|
# try to serve the requested URI. if that fails then try to
|
||||||
|
# serve the URI with a trailing slash. if that fails, then
|
||||||
|
# serve the index.html file; this is needed in order to serve
|
||||||
|
# Angular routes--e.g.,'localhost:8080/customer' will serve
|
||||||
|
# the index.html file
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user