Ctrl K
ComunidadGuías…

Dockerfile-pwa

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# syntax=docker/dockerfile:1
FROM node:26.12.1-bookworm-slim

EXPOSE 8080

ENV PL_ASSETS_DIR=/assets
ENV PL_PWA_DIR=/pwa

WORKDIR /padloc

# Only copy over the packages files of all required packages.
# This will ensure that we don't have to install all dependencies
# again if any source files change.
COPY package.json package-lock.json .npmrc tsconfig.json ./
COPY packages/pwa/package.json ./packages/pwa/
COPY packages/app/package.json ./packages/app/
COPY packages/core/package.json ./packages/core/
COPY packages/locale/package.json ./packages/locale/

# Install only the copied workspaces from the shared root lockfile.
RUN --mount=type=secret,id=proxy_ca \
    if [ -f /run/secrets/proxy_ca ]; then export NODE_EXTRA_CA_CERTS=/run/secrets/proxy_ca; fi; \
    npm install --global npm@11.20.0
RUN --mount=type=secret,id=proxy_ca \
    if [ -f /run/secrets/proxy_ca ]; then export NODE_EXTRA_CA_CERTS=/run/secrets/proxy_ca; fi; \
    npm ci --workspace @padloc/pwa --workspace @padloc/app --workspace @padloc/core --workspace @padloc/locale --include-workspace-root=false

# Now copy over source files and assets
COPY packages/pwa/src ./packages/pwa/src
COPY packages/pwa/tsconfig.json packages/pwa/webpack.config.js ./packages/pwa/
COPY packages/app/src ./packages/app/src
COPY packages/app/types ./packages/app/types
COPY packages/app/tsconfig.json ./packages/app/
COPY packages/core/src ./packages/core/src
COPY packages/core/vendor ./packages/core/vendor
COPY packages/core/tsconfig.json ./packages/core/
COPY packages/locale/src ./packages/locale/src
COPY packages/locale/res ./packages/locale/res
COPY packages/locale/tsconfig.json ./packages/locale/
COPY assets /assets

WORKDIR /padloc/packages/pwa

ENTRYPOINT ["npm", "run"]

CMD ["build_and_start"]