我有一个Dockerfile,并且有一个像COPY ["Gemfile", "Gemfile.lock", "Procfile", ".env", "/huginn/"]
我使用RUN /bin/bash -l -c "ls -a"
来检查文件应对状态,我发现.env文件不会被复制到图像中。
我将.env文件名更改为test.env并使用COPY ["Gemfile", "Gemfile.lock", "Procfile", "test.env", "/huginn/"]
,然后运行,test.env被复制到图像。
任何人都知道为什么?任何解决方案都可以让docker支持COPY
.env文件名?
答案 0 :(得分:12)
如果您有.dockerignore
个文件,则可能会添加该文件以忽略.git
,.vagrant
等隐藏文件。
如果.dockerfile
忽略隐藏文件,则您可以启用不忽略或更改文件名。
答案 1 :(得分:0)
您的COPY语法错误,此语法对Dockerfile中的ENTRYPOINT或CMD有效。
请参阅COPY文档
答案 2 :(得分:0)
分享我的dockerfile,它现在可以正常工作
bool SbSystemGetPath(SbSystemPathId path_id, char* out_path, int path_size) {
if (!out_path || !path_size) {
return false;
}
const int kPathSize = PATH_MAX;
char path[kPathSize];
path[0] = '\0';
switch (path_id) {
case kSbSystemPathContentDirectory: {
if (!GetExecutableDirectory(path, kPathSize)) {
return false;
}
if (SbStringConcat(path, "/content/data", kPathSize) >= kPathSize) {
return false;
}
break;
}
还有一个.dockerignore:
FROM ruby:2.3
MAINTAINER Tomato <tsaohucn@gmail.com>
ENV DEBIAN_FRONTEND noninteractive
ENV LANG C.UTF-8
ENV RAILS_VERSION 5.0.1
# install rails && bundler
RUN gem install rails --version "$RAILS_VERSION"
WORKDIR /huginn
# copy huginn config file
COPY ["Gemfile", "Gemfile.lock", "Procfile", ".env", "/huginn/"]
COPY lib/gemfile_helper.rb /huginn/lib/
COPY vendor/gems /huginn/vendor/gems
# run bundle install
RUN bundle install
# copy huginn
COPY . /huginn/
RUN ls -a
答案 3 :(得分:0)
.dockerignore file文档中有一条声明:
Note: For historical reasons, the pattern . is ignored.
答案 4 :(得分:0)
我遇到了同样的问题,这是一个简单的解决方案===>
使用确切的目录路径复制隐藏文件如:-
示例:- 复制路径/.hidenfile destination_path