Skip to content

feat(docker-build:compiled): автоматический symlink на yarn бинарник при yarn 2+ с yarnPath - #571

Merged
syn7xx merged 2 commits into
masterfrom
feat/yarn-symlink-docker
Aug 12, 2026
Merged

feat(docker-build:compiled): автоматический symlink на yarn бинарник при yarn 2+ с yarnPath#571
syn7xx merged 2 commits into
masterfrom
feat/yarn-symlink-docker

Conversation

@syn7xx

@syn7xx syn7xx commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Описание

При использовании yarn 2+ с yarnPath в .yarnrc.yml, сгенерированный Dockerfile автоматически создаёт symlink на yarn бинарник. Исправляет ошибку yarn: not found в Docker-образах, где yarn не установлен глобально.

Проблема

Docker-образы arui-scripts (как Dockerfile, так и Dockerfile-slim) не содержат yarn. При использовании yarn 2+ с локальным бинарником (yarnPath в .yarnrc.yml), сгенерированный Dockerfile вызывает yarn workspaces focus --production --all, но yarn недоступен в PATH.

Решение

  • getYarnPathFromRc() — читает yarnPath из .yarnrc.yml проекта (regex, без зависимости js-yaml)
  • getYarnBinSymlinkCommand() — возвращает команду ln -s /src/<yarnPath> /usr/local/bin/yarn && \\\n или пустую строку
  • В dockerfile-compiled.template.ts команда подставляется перед установкой зависимостей

Изменённые файлы

  • packages/arui-scripts/src/commands/util/yarn.ts — добавлены getYarnPathFromRc() и getYarnBinSymlinkCommand()
  • packages/arui-scripts/src/templates/dockerfile-compiled.template.ts — подстановка symlink в RUN layer
  • packages/arui-scripts/src/templates/__tests__/dockerfile-templates.tests.ts — 3 новых теста
  • .changeset/eighty-rocks-appear.md — changeset (minor)

Проверка

  • yarn test — 45 тестов passed (15 suites)
  • yarn docker-build в delivery-sandbox-ui с локальным yarn link — сборка прошла успешно

Чек-лист

  • Тесты добавлены
  • Changeset создан
  • Коммит на русском

…при yarn 2+ с yarnPath

При использовании yarn 2+ с yarnPath в .yarnrc.yml, сгенерированный
Dockerfile автоматически создаёт symlink на yarn бинарник. Исправляет
ошибку 'yarn: not found' в Docker-образах, где yarn не установлен глобально.
@changeset-bot

changeset-bot Bot commented Aug 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: c2d221d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
arui-scripts Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@syn7xx
syn7xx merged commit b8a77b9 into master Aug 12, 2026
5 checks passed
@syn7xx
syn7xx deleted the feat/yarn-symlink-docker branch August 12, 2026 15:35
@core-ds-bot core-ds-bot mentioned this pull request Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants