elementor/Dockerfile
Netanel Baba 4bc56cc985
Internal: Convert to single turbo monorepo with unified workspace [ED-23202] (#35005)
## Summary
- Merges the `packages/` turbo-repo into the root npm workspaces —
**single `node_modules`, single lockfile, turbo runs from root**
- No directory moves: `packages/packages/core|libs|tools` stays as-is
- `packages/package.json` stripped to scripts-only (no devDependencies,
workspaces, or overrides)
- All devDependencies consolidated at root with version bumps where
needed
- Root scripts updated to use `turbo` and `-w elementor-packages`
directly instead of `cd packages && npm run X`

## Changes
| File | Action |
|------|--------|
| `/turbo.json` | **Created** — root turbo config (tasks: build, dev) |
| `/package.json` | **Modified** — added workspaces, packageManager,
merged devDeps + overrides, updated scripts |
| `/packages/package.json` | **Modified** — stripped to scripts-only |
| `/packages/turbo.json` | **Deleted** — root turbo.json is now
authoritative |
| `/packages/package-lock.json` | **Deleted** — single lockfile at root
|

## Test plan
- [x] `npm install` — succeeds, single `node_modules` at root
- [x] `turbo build` — all 20 packages build successfully
- [x] `npm run test:packages` — 361/362 suites pass (2 pre-existing
failures on main)
- [x] No `packages/node_modules` or `packages/package-lock.json` exist
- [ ] CI pipeline passes
- [ ] `npm run watch:packages` works in dev
- [ ] `npm run lint` works


Made with [Cursor](https://cursor.com)
<!--start_gitstream_placeholder-->
###  PR Description
Purpose: Consolidate separate packages directory into single Turbo
monorepo workspace structure to unify dependency management and build
orchestration across the Elementor codebase.

Main changes:
- Replaced `prepare-environment:ci` with `install:ci` across all CI
workflows and scripts, removing nested package directory navigation
- Migrated Turbo configuration and workspace definitions from
packages/package.json to root-level package.json with unified workspace
paths
- Updated build scripts to use Turbo directly at root level and
consolidated testing/tooling dependencies into main devDependencies

_Generated by LinearB AI and added by gitStream._
<sub>AI-generated content may contain inaccuracies. Please verify before
using.
💡 **Tip:** You can customize your AI Description using **Guidelines**
[Learn
how](https://docs.gitstream.cm/automation-actions/#describe-changes)</sub>
<!--end_gitstream_placeholder-->

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: ElementorBot <48412871+elementorbot@users.noreply.github.com>
Co-authored-by: Davids Seveloff <94905340+davseve@users.noreply.github.com>
2026-03-08 13:08:44 +02:00

26 lines
837 B
Docker

FROM node:20.19-bookworm AS builder
RUN apt-get update && apt-get install -y \
lsb-release apt-transport-https ca-certificates software-properties-common \
&& curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/sury-php.gpg \
&& echo "deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/sury-php.list \
&& apt-get update && apt-get install -y \
php7.4-cli \
php7.4-mbstring \
php7.4-xml \
php7.4-curl \
php7.4-bcmath \
unzip \
&& rm -rf /var/lib/apt/lists/*
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /app
COPY . .
RUN npm run install:ci && npm run composer:no-dev
RUN npm run build
FROM scratch AS output
COPY --from=builder /app/build /elementor