1
0
mirror of https://github.com/ONLYOFFICE/DocSpace-client.git synced 2026-10-23 13:25:44 +03:00
Files
DocSpace-client/docker/Dockerfile
Alexey Safronov 99152dc100 Consume ui-kit 4.0.0 from npm instead of a tarball
Point every app and shared at `@onlyoffice/apps-ui-kit@^4.0.0` from the registry and drop the `file:../../onlyoffice-apps-ui-kit.tgz` specifier. Delete the committed `onlyoffice-apps-ui-kit.tgz` and the stale `onlyoffice-ai-chat-0.6.39.tgz`; the apps already pull ai-chat `^1.0.0` from npm.

The Dockerfiles copy `*.tgz` in the same `COPY` as the manifests. The glob is now optional: it still lets a locally packed tarball be wired in as `file:../../<name>.tgz` for development, and it matches nothing in a clean checkout.

The `minimumReleaseAgeExclude` comment in `pnpm-workspace.yaml` now explains the real reason the two packages are listed. They are first-party packages adopted on release day, so they are always younger than the release-age window. They are no longer listed because the tarballs were never on the registry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 19:06:05 +04:00

69 lines
2.8 KiB
Docker

# (c) Copyright Ascensio System SIA 2009-2026
#
# This program is a free software product.
# You can redistribute it and/or modify it under the terms
# of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
# Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
# to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
# any third-party rights.
#
# This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
# the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
#
# You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
#
# The interactive user interfaces in modified source and object code versions of the Program must
# display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
#
# Pursuant to Section 7(b) of the License you must retain the original Product logo when
# distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
# trademark law for use of our trademarks.
#
# All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
# content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
# International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
FROM node:24-bookworm-slim
# Install required dependencies
RUN apt-get -y update && \
apt-get install -yq
# Install PNPM
RUN npm install -g pnpm@12.4.1
WORKDIR /app
# Set PNPM store directory
RUN pnpm config set store-dir /root/.local/share/pnpm/store
# Copy package files first for better layer caching
# `*.tgz` is optional: ui-kit and ai-chat come from npm, but a locally packed
# tarball at the repo root can be referenced as `file:../../<name>.tgz` for
# local development. A glob matching nothing is fine next to real sources.
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml *.tgz ./
# Copy the source code with correct directory structure
COPY ../common/ ./common/
COPY ../packages/ ./packages/
# next.config.js requires scripts/ui-kit-dev.cjs at load time.
COPY ../scripts/ ./scripts/
COPY ../public/ ./public/
# ENV NODE_OPTIONS="--max-old-space-size=8192"
# Install dependencies
# CI=true is scoped to this one command on purpose. It skips the
# `lefthook install` in the workspace prepare scripts, which cannot work
# because the image has no .git. A persistent `ENV CI=true` would also
# change Playwright's runtime defaults (retries, workers, forbidOnly).
RUN CI=true pnpm install --frozen-lockfile
# Run build apps
RUN pnpm run build
EXPOSE 5001 5011 5013 5015 5099
CMD ["pnpm", "start-prod"]