2017-02-15 4 views
3

У меня есть простое веб-приложение, которое я хотел бы разместить в контейнере докера. Угловое приложение существует в папке frontend/, которая содержит папку application/.Docker Добавить каждый файл в текущий каталог

Когда Dockerfile находится в папке application/ и звучит следующим образом:

FROM node 
ADD frontend/ frontend/ 
RUN (cd frontend/; npm install;) 
CMD (cd frontend/; npm start;) 

все работает правильно.

Однако, когда я двигаю Dockerfile в папку frontend/ и изменить его читать

FROM node 
ADD . frontend/ 
RUN (cd frontend/; npm install;) 
CMD (cd frontend/; npm start;) 

файлы не копируются, и проект не работает.

Как я могу добавить каждый файл и папку рекурсивно в текущую директорию к моему файлу докеров?

+0

Что касается смены источника на ./ – user2105103

+0

К сожалению нет – iambicSam

+0

'ADD''.' '/' '. /' Все скопируют текущее содержимое контекста сборки для меня. Как выглядит ваша команда 'docker build'? – Matt

ответ

3

Dockerfile, что в конечном итоге работает был

FROM node 
ADD ./frontend/ 
RUN (cd frontend/; npm install;) 
CMD (cd frontend/; npm start;) 

Shoutout к @ Matt на опережение ././, но я думаю, что единственная причина, по которой не работал потому, что по какой-то причине мое приложение будет работать только когда он находится внутри каталога, а не в «корне». Это может иметь какое-то отношение к наблюдению @ VonC, что изображение узла не имеет WORKDIR.

+1

Хорошая обратная связь и более точный, чем мой ответ. +1. Вы пытались с помощью 'WORKDIR /'? – VonC

0

Сначала попробуйте COPY, чтобы проверить, не исчезла ли проблема.

Во-вторых, убедитесь, что файлы не копируются, изменив CMD к ls frontend

Я не вижу WORKDIR в node/7.5/Dockerfile, так frontend может быть в /frontend: проверить ls /frontend тоже.

Смежные вопросы