我正在运行docker build并且运行时间非常长。事实上,它没有完成,我必须按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上运行docker
答案 0 :(得分:8)
我不知道为什么文件大小为213.8。唯一的目录是node_modules,它包含.dockerignore,因此它不应该触及该目录。
那不是.dockerignore
的工作方式。 .dockerignore
文件应与Dockerfile
位于同一目录中,并列出要忽略的模式。在名为backend
的{{1}}中创建一个文件,其中只包含.dockerignore
行。
有关详细信息,请参阅此处:https://docs.docker.com/engine/reference/builder/#dockerignore-file
答案 1 :(得分:0)
@sulogonamission说的很完美。
.dockerignore
的文件/node_modules
(或node_modules目录的确切路径)