Docker изменить каталог в команде CMD - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь использовать docker для проекта Firebase, для Firebase package.json находится в подпапке с именем functions. Я использую узел: alpine image.

В моем Dockerfile мне нужно перейти в каталог функций и запустить npm run start. Как мне это сделать, пожалуйста?

Я пробовал CMD ["cd", "functions", ";", "npm", "run", "serve"], я получил эту ошибку /usr/local/bin/docker-entrypoint.sh: exec: line 8: cd: not found

FROM node:alpine

WORKDIR '/app'

RUN npm install -g firebase-tools

COPY functions/package*.json functions/

RUN cd functions && npm install && cd ..

COPY . .

CMD [ "cd", "functions", ";", "npm", "run", "serve" ]

Ответы [ 2 ]

2 голосов
/ 14 января 2020

правильный способ - использовать workdir:

WORKDIR /functions
CMD [ "npm", "run", "serve" ]

или просто использовать:

CMD [ "/bin/sh" , "-c" , "cd /functions && npm run serve" ]
2 голосов
/ 14 января 2020

Если у вас есть подконтрольный файл, просто добавьте строку ДО CMD:

WORKDIR '/functions'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...