fix: fix login image (#10355)

# Which Problems Are Solved

The broken login image is fixed.

# How the Problems Are Solved

The most important learnings from
https://github.com/zitadel/zitadel/pull/10318 are applied:
- Path in entrypoint is fixed: `exec node /runtime/apps/login/server.js`
- .dockerignore is updated so CSS styles are built into the image
- `source: .` is passed to the docker-bake action. Without this,
docker-bake builds from a remote context, which seems to be slow and not
updated on new PR commits. Looks like the bake action uploads an
artifact that [conflicts with the compile
workflow](https://github.com/zitadel/zitadel/actions/runs/16620417216/job/47023478437).
Therefore, a pattern is added to the compile workflow so only relevant
artifacts are selected.
This commit is contained in:
Elio Bischof
2025-07-31 09:51:26 +02:00
committed by Stefan Benz
parent 0cd3b47b16
commit 819b82e525
7 changed files with 52 additions and 25 deletions

View File

@@ -77,6 +77,7 @@ jobs:
- uses: actions/download-artifact@v4 - uses: actions/download-artifact@v4
with: with:
path: executables path: executables
pattern: 'zitadel-*-*'
- name: move files one folder up - name: move files one folder up
run: mv */*.tar.gz . && find . -type d -empty -delete run: mv */*.tar.gz . && find . -type d -empty -delete
working-directory: executables working-directory: executables

View File

@@ -55,6 +55,7 @@ jobs:
env: env:
NODE_VERSION: ${{ inputs.node_version }} NODE_VERSION: ${{ inputs.node_version }}
with: with:
source: .
push: true push: true
provenance: true provenance: true
sbom: true sbom: true

View File

@@ -8,6 +8,4 @@ if [ -n "${ZITADEL_SERVICE_USER_TOKEN_FILE}" ] && [ -f "${ZITADEL_SERVICE_USER_T
export ZITADEL_SERVICE_USER_TOKEN=$(cat "${ZITADEL_SERVICE_USER_TOKEN_FILE}") export ZITADEL_SERVICE_USER_TOKEN=$(cat "${ZITADEL_SERVICE_USER_TOKEN_FILE}")
fi fi
exec node /runtime/apps/login/server.js
exec node /runtime/apps/login/apps/login/server.js

View File

@@ -24,9 +24,9 @@ COPY . .
RUN pnpm turbo build:login:standalone RUN pnpm turbo build:login:standalone
FROM scratch AS build-out FROM scratch AS build-out
COPY --from=build /app/apps/login/.next/standalone / COPY /apps/login/public ./apps/login/public
COPY --from=build /app/apps/login/.next/static /.next/static COPY --from=build /app/apps/login/.next/standalone ./
COPY --from=build /app/apps/login/public /public COPY --from=build /app/apps/login/.next/static ./apps/login/.next/static
FROM base AS login-standalone FROM base AS login-standalone
WORKDIR /runtime WORKDIR /runtime
@@ -34,7 +34,7 @@ RUN addgroup --system --gid 1001 nodejs && \
adduser --system --uid 1001 nextjs adduser --system --uid 1001 nextjs
# If /.env-file/.env is mounted into the container, its variables are made available to the server before it starts up. # If /.env-file/.env is mounted into the container, its variables are made available to the server before it starts up.
RUN mkdir -p /.env-file && touch /.env-file/.env && chown -R nextjs:nodejs /.env-file RUN mkdir -p /.env-file && touch /.env-file/.env && chown -R nextjs:nodejs /.env-file
COPY apps/login/scripts ./ COPY --chown=nextjs:nodejs apps/login/scripts ./
COPY --chown=nextjs:nodejs --from=build-out . . COPY --chown=nextjs:nodejs --from=build-out . .
USER nextjs USER nextjs
ENV HOSTNAME="0.0.0.0" ENV HOSTNAME="0.0.0.0"

View File

@@ -8,7 +8,8 @@
!apps/login/next.config.mjs !apps/login/next.config.mjs
!apps/login/next-env-vars.d.ts !apps/login/next-env-vars.d.ts
!apps/login/next-env.d.ts !apps/login/next-env.d.ts
!apps/login/tailwind.config.js !apps/login/tailwind.config.mjs
!apps/login/postcss.config.cjs
!apps/login/tsconfig.json !apps/login/tsconfig.json
!apps/login/package.json !apps/login/package.json
!apps/login/turbo.json !apps/login/turbo.json
@@ -23,6 +24,7 @@
!packages/zitadel-proto/turbo.json !packages/zitadel-proto/turbo.json
!packages/zitadel-client/package.json !packages/zitadel-client/package.json
!packages/zitadel-client/**/package.json
!packages/zitadel-client/src !packages/zitadel-client/src
!packages/zitadel-client/tsconfig.json !packages/zitadel-client/tsconfig.json
!packages/zitadel-client/tsup.config.ts !packages/zitadel-client/tsup.config.ts
@@ -30,8 +32,7 @@
!proto !proto
*.md **/*.md
*.png **/node_modules
node_modules **/*.test.ts
*.test.ts **/*.test.tsx
*.test.tsx

View File

@@ -30,6 +30,6 @@
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.3.0", "@types/node": "^22.3.0",
"cypress": "^13.13.3" "cypress": "^14.5.3"
} }
} }

48
pnpm-lock.yaml generated
View File

@@ -576,8 +576,8 @@ importers:
specifier: ^22.3.0 specifier: ^22.3.0
version: 22.16.5 version: 22.16.5
cypress: cypress:
specifier: ^13.13.3 specifier: ^14.5.3
version: 13.17.0 version: 14.5.3
packages/zitadel-client: packages/zitadel-client:
dependencies: dependencies:
@@ -2154,6 +2154,10 @@ packages:
resolution: {integrity: sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==} resolution: {integrity: sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==}
engines: {node: '>= 6'} engines: {node: '>= 6'}
'@cypress/request@3.0.9':
resolution: {integrity: sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw==}
engines: {node: '>= 6'}
'@cypress/xvfb@1.2.4': '@cypress/xvfb@1.2.4':
resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==}
@@ -7033,16 +7037,16 @@ packages:
cypress-wait-until@3.0.2: cypress-wait-until@3.0.2:
resolution: {integrity: sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==} resolution: {integrity: sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==}
cypress@13.17.0:
resolution: {integrity: sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==}
engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0}
hasBin: true
cypress@14.5.2: cypress@14.5.2:
resolution: {integrity: sha512-O4E4CEBqDHLDrJD/dfStHPcM+8qFgVVZ89Li7xDU0yL/JxO/V0PEcfF2I8aGa7uA2MGNLkNUAnghPM83UcHOJw==} resolution: {integrity: sha512-O4E4CEBqDHLDrJD/dfStHPcM+8qFgVVZ89Li7xDU0yL/JxO/V0PEcfF2I8aGa7uA2MGNLkNUAnghPM83UcHOJw==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true hasBin: true
cypress@14.5.3:
resolution: {integrity: sha512-syLwKjDeMg77FRRx68bytLdlqHXDT4yBVh0/PPkcgesChYDjUZbwxLqMXuryYKzAyJsPsQHUDW1YU74/IYEUIA==}
engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
hasBin: true
cytoscape-cose-bilkent@4.1.0: cytoscape-cose-bilkent@4.1.0:
resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==}
peerDependencies: peerDependencies:
@@ -16904,6 +16908,27 @@ snapshots:
tunnel-agent: 0.6.0 tunnel-agent: 0.6.0
uuid: 8.3.2 uuid: 8.3.2
'@cypress/request@3.0.9':
dependencies:
aws-sign2: 0.7.0
aws4: 1.13.2
caseless: 0.12.0
combined-stream: 1.0.8
extend: 3.0.2
forever-agent: 0.6.1
form-data: 4.0.4
http-signature: 1.4.0
is-typedarray: 1.0.0
isstream: 0.1.2
json-stringify-safe: 5.0.1
mime-types: 2.1.35
performance-now: 2.1.0
qs: 6.14.0
safe-buffer: 5.2.1
tough-cookie: 5.1.2
tunnel-agent: 0.6.0
uuid: 8.3.2
'@cypress/xvfb@1.2.4(supports-color@8.1.1)': '@cypress/xvfb@1.2.4(supports-color@8.1.1)':
dependencies: dependencies:
debug: 3.2.7(supports-color@8.1.1) debug: 3.2.7(supports-color@8.1.1)
@@ -23170,7 +23195,7 @@ snapshots:
cypress-wait-until@3.0.2: {} cypress-wait-until@3.0.2: {}
cypress@13.17.0: cypress@14.5.2:
dependencies: dependencies:
'@cypress/request': 3.0.8 '@cypress/request': 3.0.8
'@cypress/xvfb': 1.2.4(supports-color@8.1.1) '@cypress/xvfb': 1.2.4(supports-color@8.1.1)
@@ -23185,7 +23210,7 @@ snapshots:
check-more-types: 2.24.0 check-more-types: 2.24.0
ci-info: 4.3.0 ci-info: 4.3.0
cli-cursor: 3.1.0 cli-cursor: 3.1.0
cli-table3: 0.6.5 cli-table3: 0.6.1
commander: 6.2.1 commander: 6.2.1
common-tags: 1.8.2 common-tags: 1.8.2
dayjs: 1.11.13 dayjs: 1.11.13
@@ -23198,6 +23223,7 @@ snapshots:
figures: 3.2.0 figures: 3.2.0
fs-extra: 9.1.0 fs-extra: 9.1.0
getos: 3.2.1 getos: 3.2.1
hasha: 5.2.2
is-installed-globally: 0.4.0 is-installed-globally: 0.4.0
lazy-ass: 1.6.0 lazy-ass: 1.6.0
listr2: 3.14.0(enquirer@2.4.1) listr2: 3.14.0(enquirer@2.4.1)
@@ -23216,9 +23242,9 @@ snapshots:
untildify: 4.0.0 untildify: 4.0.0
yauzl: 2.10.0 yauzl: 2.10.0
cypress@14.5.2: cypress@14.5.3:
dependencies: dependencies:
'@cypress/request': 3.0.8 '@cypress/request': 3.0.9
'@cypress/xvfb': 1.2.4(supports-color@8.1.1) '@cypress/xvfb': 1.2.4(supports-color@8.1.1)
'@types/sinonjs__fake-timers': 8.1.1 '@types/sinonjs__fake-timers': 8.1.1
'@types/sizzle': 2.3.9 '@types/sizzle': 2.3.9