Скрытый файл .env не копируется с помощью Docker COPY
У меня есть 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 is скопированы на изображение.
Кто-нибудь знает, почему? И любое решение может разрешить имя файла.png COPY
.env.
Ответы
Ответ 1
Если у вас есть файл .dockerignore
, возможно, вы добавили его, чтобы игнорировать скрытые файлы, такие как .git
, .vagrant
и т.д.
Если .dockerfile
игнорирует скрытые файлы, вы можете включить или не изменять имя файла.
Для получения дополнительной информации о файле .dockerignore
Ответ 2
Ваш синтаксис COPY неверен, этот синтаксис действителен для ENTRYPOINT или CMD в файле Docker.
См. Документ для COPY
https://docs.docker.com/engine/reference/builder/#/copy
Ответ 3
поделитесь файлом 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
Ответ 4
There is a statement in .dockerignore file документация есть выражение:
Note: For historical reasons, the pattern . is ignored.