我想将一个简单的JS Boilerplate部署到Docker Cloud.我使用的Dockerfile已经用于不同的Boilerplate和图像.Dockerfile非常简单.它只是基于官方的nginx,将两个配置文件,然后我的gulp样板文件的输出文件夹添加到nginx根目录.所以我将它从一个目录复制到新的样板文件,因为我想尝试这个.
我得到的错误是这(最后一行)
Sending build context to Docker daemon 277.5 kB
Step 1 : FROM nginx
---> af4b3d7d5401
Step 2 : MAINTAINER Ole Bjarnstroem
---> Using cache
---> f57bc23d9444
Step 3 : ENV LANG en_US.UTF-8
---> Using cache
---> f6f4a76092dd
Step 4 : COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
---> Using cache
---> c4f83a39ba73
Step 5 : COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
---> Using cache
---> 6fe5a6b61d9f
Step 6 : ADD ./dist /usr/share/nginx/html
lstat dist: no such file or directory
Run Code Online (Sandbox Code Playgroud)
但dist文件夹就在那里.
.
??? Dockerfile
??? JSCS.intellij.formatter.xml
??? README.md
??? app
??? dist
??? gulpfile.babel.js
??? jspm.conf.js
??? jspm_packages
??? karma.conf.js
??? nginx
??? node_modules
??? package.json
??? tsconfig.json
??? tslint.json
??? typings
??? typings.json
Run Code Online (Sandbox Code Playgroud)
值得注意的是,要复制的文件夹被调用./public所以我可以想象这是一种奇怪的Docker Cache问题.
我的Dockerfile:
FROM nginx
ENV LANG en_US.UTF-8
# Copy configuration files
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
# Add Gulp output folder to server root
ADD ./dist /usr/share/nginx/html
# Port configuration
EXPOSE 8080
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试了什么:
我的构建命令:
docker build -t my_repo/my_app .
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
编辑:每个其他文件夹工作.它也不是文件权限的问题.看来,Docker只是不喜欢dist文件夹.哪个很烂.
Ole*_*ann 83
嗯,傻我.项目文件夹中有一个.dockerignore文件dist...案例已关闭
Ric*_*ich 14
我有同样的问题,但它不是.dockerignore,我忘了指定运行docker的目录.在我的情况下,该目录是.我的完整命令之前是
docker build - < Dockerfile
Run Code Online (Sandbox Code Playgroud)
之后是
docker build . < Dockerfile
Run Code Online (Sandbox Code Playgroud)
我在build命令之后使用-f指定dockerfile
例如:
sudo docker build . -t test:i386 -f mydockerfile
构建后的点是要构建的目录,在本例中为dir.
| 归档时间: |
|
| 查看次数: |
46855 次 |
| 最近记录: |