#node.js #docker #monorepo #yarn-workspaces
#node.js #docker #monorepo #yarn-рабочие пространства
Вопрос:
Я пытаюсь настроить Dockerfile, который будет:
- Используйте аргументы в блоке CMD
- Работа с рабочими пространствами yarn для monorepo
- Используйте этот аргумент, чтобы указать папку в monorepo для «запуска»
В настоящее время при запуске контейнера он просто переходит к установке зависимостей…
Dockerfile находится здесь:
FROM node:12
ARG location
ENV monorepoFolder=${location}
WORKDIR /workdir
COPY . .
RUN ls
RUN yarn --cwd ${location}
RUN yarn --cwd ${location} build
COPY . .
EXPOSE 3000
CMD yarn --cwd ${monorepoFolder} start
Структура каталогов проста:
/ содержит все папки / рабочие пространства в monorepo, а также package.json
Как правило, чтобы запустить проект локально, я бы запустил:
yarn --cwd folder1
yarn --cwd folder1 build
yarn --cwd folder1 start
Но, увы, когда я пытаюсь запустить dockerfile, он просто пытается переустановить зависимости.
Ответ №1:
Итак, как оказалось, это работает. Очистил мой кеш / изображения, и он работает так, как ожидалось!
Любые улучшения в Dockerfile, и я весь внимание. Оставим это, поскольку в этой настройке не так много.