2016-05-22 4 views
2

Я запускаю сборку докеров, и это займет очень много времени. 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 

Я бегу докер на Ubuntu 14.04

+0

, когда вы делаете 'Докер build' вы в директории только необходимые файлы для докер построить? Обычно я делаю 'mkdir myproject; cd myproject; emacs Dockerfile' – user2915097

ответ

3

Я не знаю, почему размер файла был 213,8. Единственный большой каталог - node_modules и содержит .dockerignore, поэтому он не должен касаться этого каталога.

Это не так, как .dockerignore работ. Файл .dockerignore должен находиться в том же каталоге, что и ваш Dockerfile, и отображает шаблоны для игнорирования. Создайте файл в backend под названием .dockerignore, который просто содержит строку node_modules.

Смотрите здесь для получения дополнительной информации: https://docs.docker.com/engine/reference/builder/#dockerignore-file

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