私は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ファイル名をサポートさせることができますか?
.dockerignore
ファイルがある場合は、.git
、.vagrant
などの非表示ファイルを無視するように追加されている可能性があります。
隠しファイルを.dockerfile
で無視する場合は、ファイル名を無視したり変更したりしないようにすることもできます。
私のdockerfileを共有してください、それは今正しく動作することができます
FROM Ruby:2.3
MAINTAINER Tomato <[email protected]>
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
そして.dockerignoreがあります:
.git
tmp
log
doc
spec
media
.openshift
.bundle
vendor/bundle
db/*.sqlite3
public/system/*
coverage
.travis.yml
build_docker_image.sh
# Copied from .gitignore
*.rbc
*.sassc
.sass-cache
capybara-*.html
.rspec
!/tmp/.gitkeep
**.orig
rerun.txt
pickle-email-*.html
.idea/
.DS_Store
deployment/tmp
deployment/cookbooks
.vagrant
.*un~
.Ruby-gemset
.Ruby-version
manifest.yml
config/Unicorn.rb
db/schema.rb
COPY構文が間違っています。この構文は、DockerfileのENTRYPOINTまたはCMDに有効です。
COPYのドキュメントを参照してください
。dockerignore file ドキュメントにステートメントがあります:
Note: For historical reasons, the pattern . is ignored.