Tengo un Dockerfile y hay una sintaxis como esta COPY ["Gemfile", "Gemfile.lock", "Procfile", ".env", "/huginn/"]
Uso RUN /bin/bash -l -c "ls -a" para verificar el estado de la copia del archivo, encuentro que el archivo .env no se copia en la imagen.
Cambio el nombre del archivo .env a test.env y uso COPY ["Gemfile", "Gemfile.lock", "Procfile", "test.env", "/huginn/"] , luego funciona, test.env es copiado a la imagen.
Alguien sabe porque es? ¿Y alguna solución puede permitir que Docker admita el nombre de archivo COPY .env?
Si tiene un archivo .dockerignore , es posible que haya agregado para ignorar archivos ocultos como .git , .vagrant , etc.
Si .dockerfile ignora los archivos ocultos, puede habilitar para no ignorar o cambiar el nombre del archivo.
Hay una declaración en la documentación del archivo .dockerignore :
Note: For historical reasons, the pattern . is ignored.compartir mi dockerfile, puede funcionar correctamente ahora
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 -aY hay un .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