Почему docker build так долго работает?
я запускаю docker build, и для запуска требуется ужасно много времени. Infact, он не завершен, и мне нужно CTRL + C, чтобы выйти.
прошлой ночью все работало нормально. Когда я вернулся к компьютеру и попытался восстановить его, он начал действовать странно.
вот:docker build -t mywebsite/backend .
когда я запустил его, я заметил это:
Sending build context to Docker daemon 213.8 MB
Step 1 : FROM ubuntu:14.04
Я понятия не имею, почему размер файла был 213.8. Единственный большой каталог -node_modules
и что содержит .dockerignore
поэтому он не должен касаться этого каталога.
после этого у меня была ошибка, поэтому я исправил ее и повторил:
docker build -t mywebsite/backend .
на этот раз он просто висел. И продолжает это делать.
вот мой Dockerfile
FROM ubuntu:14.04
# Set env. variables
ENV DEBIAN_FRONTEND noninteractive
# Application
ENV APP_PORT 3000
# Amazon
ENV AMAZON_BUCKET mybucket
ENV AMAZON_ACCESS_KEY_ID mykey
ENV AMAZON_SECRET_ACCESS_KEY mytoken
# Set working directory
WORKDIR ~/vms
# Install NodeJS
RUN apt-get update; apt-get install -y curl;
RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
RUN apt-get install -y nodejs
# Install node dependencies
ADD package.json package.json
RUN npm install --production
# Copy files to the container
ADD src src
EXPOSE 3000
# Start application
RUN npm start
каталог, в котором я нахожусь, Когда я запускаю команду, это тот, который содержит Dockerfile:
- backend
- node_modules
- src
- config
- routes
- views
index.js
Dockerfile
package.json
я запускаю docker на Ubuntu 14.04
2 ответов
Я понятия не имею, почему размер файла был 213.8. Единственный большой каталог-node_modules, который содержит .dockerignore поэтому ее не следует трогать каталога.
не так .dockerignore
строительство. The .dockerignore
файл должен находиться в том же каталоге, что и ваш Dockerfile
и перечисляет шаблоны для игнорирования. Создайте файл в backend
под названием .dockerignore
который просто содержит строку node_modules
.
см. здесь для получения дополнительной информации: https://docs.docker.com/engine/reference/builder/#dockerignore-file
то, что @sulogonamission говорит, идеально.
- создайте файл с именем
.dockerfile
в каталоге, где существует Dockerfile - добавить следующий текст в файл
/node_modules
(или точный путь к каталогу node_modules) - сохраните файл и снова запустите docker build.