Как я могу использовать аргументы в Dockerfile с рабочими пространствами Yarn (с CMD)?

Я пытаюсь настроить Dockerfile, который будет:

  1. Используйте аргументы в блоке CMD
  2. Работа с рабочими пространствами пряжи для монохранилища
  3. Используйте этот аргумент, чтобы указать папку в 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

Структура каталогов проста:

/ содержит все папки/рабочие пространства в монорепозитории, а также package.json

Как правило, чтобы запустить проект локально, я запускаю:

yarn --cwd folder1
yarn --cwd folder1 build
yarn --cwd folder1 start

Но, увы, когда я пытаюсь запустить dockerfile, он просто пытается переустановить зависимости.


person hjfitz    schedule 10.11.2020    source источник


Ответы (1)


Так что, как оказалось, это работает. Очистил кеш/изображения, и он работает как положено!

Любые улучшения в Dockerfile, и я весь внимание. Оставлю это, так как в этой настройке не так много всего.

person hjfitz    schedule 10.11.2020