Compose: рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд┐рдЯ рдЗрдЧреНрдиреЛрд░рд┐рдВрдЧ .dockerignore?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдЬреВрди 2015  ┬╖  100рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: docker/compose

рдореБрдЭреЗ рдпрд╣рд╛рдВ рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рд░реЗрдкреЛ рдорд┐рд▓рд╛ рд╣реИ:

https://github.com/devinrsmith/docker-compose-build-test

рдЕрдЧрд░ рдореИрдВ docker-compose build рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

.Dockerignore docker build -t subdir ../ рд▓рд┐рдП рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди docker-compose build ?

рд╕рднреА 100 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдЖрдкрдХреЗ .dockerignore subdir/ рд╕реЗ subdir ред

.Dockerignore docker build -t subdir ../ рд▓рд┐рдП рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди docker-compose build ?

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ docker- рд░рдЪрдирд╛ 1.2.0ред
рд░рдирд┐рдВрдЧ рд╡рдиреАрд▓рд╛ рдбреЙрдХрдЯрд░ рдЗрдЧреНрдиреЛрд░ рдлрд╛рдЗрд▓ рдореЗрдВ рдкреБрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЗрдореЗрдЬ, рдПрдирдкреА рдмрдирд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдЗрдЧреНрдирд┐рд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЕрдиреБрдЧрд╛рдореА рд╕реНрд▓реИрд╢ рдХреЗ рд╕рд╛рде рдпрд╛ рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдПрдХ docker-py рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ; рдПрдХ рдлрд┐рдХреНрд╕ https://github.com/docker/docker-py/pull/604 рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

@aanand рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рд╣реИ https://github.com/docker/docker-py/pull/604 рдардк рд╣реЛ рдЧрдпрд╛ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛?

@thaJeztah рдореИрдВрдиреЗ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/docker/docker-py/pull/721 рдмрдирд╛рдпрд╛ рд╣реИред

рдирдорд╕реНрддреЗ,

рдореИрдВ .dockerignore рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

*.sh

!awesome/script.sh

docker рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рд╕рдм рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди docker-compose рдиреЗ "рднрдпрд╛рдирдХ / script.sh" рдирд╣реАрдВ рджреЗрдЦрд╛

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реА рдореБрджреНрджреЗ рдореЗрдВ рд╣реВрдБ?

@Willouer рдпрд╣ рдПрдХ рдЬреНрдЮрд╛рдд рдмрдЧ рд╣реИ, рдЬрд┐рд╕реЗ https://github.com/docker/docker-py/pull/721 рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдпрд╣ 1.5.0 рдореЗрдВ рдХрдореНрдкреЛрдЬрд╝ рдХреА рддрд░рдл рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж !

рдпрд╣ рдЕрднреА рднреА рдХреБрдЫ рдорд╢реАрдиреЛрдВ рдкрд░ рдирд╡реАрдирддрдо рдЧрд┐рдЯ рдорд╛рд╕реНрдЯрд░ рдкрд░ рднреА рдЯреВрдЯрд╛ рд╣реБрдЖ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕ рджрд┐рдП рдЧрдП рдорд╢реАрди рдкрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:

рдбреЗрдмрд┐рдпрди 8.2 рдХрд░реНрдиреЗрд▓ 3.16.0 рдХреЗ рд╕рд╛рде lxc-docker рд╕рдВрд╕реНрдХрд░рдг 1.7.1 рдХреЗ рд╕рд╛рде, 786b29d рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИ
рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдЧрд┐рдЯ рдорд╛рд╕реНрдЯрд░ рд╣реИ, HEAD dabf1e8657674014a5bc89f99edbf2fe0629bb71 рдкрд░ рд╣реИ

.Dockerignore docker build (рдЬреЛ рддреБрд░рдВрдд рдЪрд▓рддрд╛ рд╣реИ) рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди docker-compose рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ (рдЬреЛ рд╕рд╛рдорд╛рди рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЙрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдорд┐рдирдЯреЛрдВ рддрдХ рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)ред

# 2100 рднреА рджреЗрдЦреЗрдВ

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред docker-compose рдЗрдЧреНрдиреЛрд░ рдХрд░рддрд╛ рд╣реИ ".dockerignore"ред "docker build" рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рд┐рд╕реНрдЯрдо: рд╡рд┐рдВрдбреЛрдЬрд╝ 10

рдореИрдВ рдХрд▓ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдбреЙрдХрд░ рдЯреВрд▓рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

  • рд╡рд┐рдВрдбреЛрдЬ 7 x64
  • рдбреЙрдХрд░ рд╕рдВрд╕реНрдХрд░рдг 1.9.0, 76d6bc9 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
  • рдбреЙрдХрдЯрд░-рд░рдЪрдирд╛ 1.5.0

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрднреА рднреА .dockerignore рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк 1.5.0 рд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдирдореВрдирд╛ .dockerignore рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╣рдо рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХреЗрдВред

рдПрдХ рдЫреЛрдЯрд╛ usecase рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рджреЗрдЦрд╛:

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ package.json :

{
  "dependencies": {
    "grunt-contrib-uglify": "^0.9.2"
  }
}

рд╕рд╛рде рд╣реА рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ docker-compose.yml :

web:
  build: .

Dockerfile рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

FROM node:0.12

рдореЗрд░реЗ .dockerignore рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрддреА рд╣реИ (рдореИрдВрдиреЗ рдЕрдиреБрдЧрд╛рдореА рд╕реНрд▓реИрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣реА):

node_modules

рдЕрдм рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

> npm install
  (...snip...)
> docker build .
Sending build context to Docker daemon  5.12 kB

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ 5 KiB рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ ( node_modules рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рд▓рдЧрднрдЧ 10 MiB)ред docker-compose Q:\sites\test :

> npm install
  (...snip...)
> docker-compose up
Building web
Traceback (most recent call last):
  File "D:\opt\python\Scripts\docker-compose-script.py", line 9, in <module>
    load_entry_point('docker-compose==1.5.0dev', 'console_scripts', 'docker-compose')()
  File "D:\opt\python\lib\site-packages\compose\cli\main.py", line 54, in main
    command.sys_dispatch()
  File "D:\opt\python\lib\site-packages\compose\cli\docopt_command.py", line 23, in sys_dispatch
    self.dispatch(sys.argv[1:], None)
  File "D:\opt\python\lib\site-packages\compose\cli\docopt_command.py", line 26, in dispatch
    self.perform_command(*self.parse(argv, global_options))
  File "D:\opt\python\lib\site-packages\compose\cli\main.py", line 170, in perform_command
    handler(project, command_options)
  File "D:\opt\python\lib\site-packages\compose\cli\main.py", line 583, in up
    detached=detached
  File "D:\opt\python\lib\site-packages\compose\project.py", line 313, in up
    detached=detached
  File "D:\opt\python\lib\site-packages\compose\service.py", line 404, in execute_convergence_plan
    container = self.create_container(do_build=do_build)
  File "D:\opt\python\lib\site-packages\compose\service.py", line 303, in create_container
    self.ensure_image_exists(do_build=do_build)
  File "D:\opt\python\lib\site-packages\compose\service.py", line 326, in ensure_image_exists
    self.build()
  File "D:\opt\python\lib\site-packages\compose\service.py", line 718, in build
    dockerfile=self.options.get('dockerfile', None),
  File "D:\opt\python\lib\site-packages\docker\api\build.py", line 48, in build
    context = utils.tar(path, exclude=exclude, dockerfile=dockerfile)
  File "D:\opt\python\lib\site-packages\docker\utils\utils.py", line 85, in tar
    t.add(os.path.join(root, path), arcname=path, recursive=False)
  File "D:\opt\python\lib\tarfile.py", line 1998, in add
    tarinfo = self.gettarinfo(name, arcname)
  File "D:\opt\python\lib\tarfile.py", line 1870, in gettarinfo
    statres = os.lstat(name)
WindowsError: [Error 3] Das System kann den angegebenen Pfad nicht finden: 'Q:\\sites\\test\\node_modules\\grunt-contrib-uglify\\node_modules\\maxmin\\node_modules\\pretty-bytes\\node_modules\\meow\\node_modules\\normalize-package-data\\node_modules\\validate-npm-package-license\\node_modules\\spdx-correct\\node_modules\\spdx-license-ids\\spdx-license-ids.json'

(рдореИрдВ рдЗрд╕ рдорд╢реАрди рдкрд░ 1.5.0dev рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ 1.5.0 рдлрд╛рдЗрдирд▓ рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЕрдиреНрдп рдорд╢реАрди рдкрд░ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ)ред

рдиреЛрдб рдХреЗ рд╕рд╛рде, рдореИрдВ рдЕрдХреНрд╕рд░ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдмрд╣реБрдд рд▓рдВрдмреЗ рд░рд╛рд╕реНрддреЛрдВ рдФрд░ рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдереНрдп рдХрд┐ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕ рдХреЛ рдЯрд╛рд░рдЧреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рд╕рдВрдХреЗрддрдХ рд╣реИ рдХрд┐ .dockerignore рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

FWIW, рдореИрдВ рдЕрднреА рднреА рд▓рд┐рдирдХреНрд╕ (рдЙрдмрдВрдЯреВ) рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд┐рдЯ 1.5.0dev рдХреЗ рд╕рд╛рде рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдПрдХ рдЙрддреНрдкрд╛рджрди рдорд╢реАрди рдкрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдиреНрдпреВрдирддрдо рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ (рдпрд╣ рдореЗрд░реА рдкрд░реАрдХреНрд╖рдг рдорд╢реАрди рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВред

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛:

docker-compose.yml
web
  + .dockerignore
  + Dockerfile
  + node_modules
    + ...

рдбреЛрдХрд░-compose.yaml

web:
  build: web
  tty: true
  ports:
    - 8081:5000

Dockerfile

FROM microsoft/aspnet

# Curl, node, npm, bower, grunt
RUN apt-get update && apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup | bash -
RUN apt-get install -y nodejs
RUN npm install -g bower
RUN npm install -g grunt-bower-cli
RUN npm install -g grunt
RUN npm install -g grunt-cli
RUN npm install -g grunt-bower-task

# Copy the project.json file first, then do a restore.
# This ensures that as long as project.json doesn't change, it will avoid
# doing a package restore
COPY project.json /app/
COPY bower.json /app/
COPY gruntfile.js /app/
COPY package.json /app/
WORKDIR /app

RUN ["dnu", "restore"]

# Then copy the rest of the files
COPY . /app

# Expose the port that the website listens on
EXPOSE 5000
# And start the website
ENTRYPOINT ["dnx", "-p", "project.json", "web"]

.dockerignore

node_modules

рдкрд░рд┐рдгрд╛рдо:

Pi<strong i="19">@Ricci</strong> MINGW64 /d/proj/Repro
$ docker-compose build
Building web
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "C:\projects\compose\compose\cli\main.py", line 54, in main
  File "C:\projects\compose\compose\cli\docopt_command.py", line 23, in sys_dispatch
  File "C:\projects\compose\compose\cli\docopt_command.py", line 26, in dispatch
  File "C:\projects\compose\compose\cli\main.py", line 171, in perform_command
  File "C:\projects\compose\compose\cli\main.py", line 192, in build
  File "C:\projects\compose\compose\project.py", line 235, in build
  File "C:\projects\compose\compose\service.py", line 683, in build
  File "c:\projects\compose\venv\lib\site-packages\docker\api\build.py", line 48, in build
  File "c:\projects\compose\venv\lib\site-packages\docker\utils\utils.py", line 85, in tar
  File "c:\python27-x64\Lib\tarfile.py", line 2000, in add
  File "c:\python27-x64\Lib\tarfile.py", line 1872, in gettarinfo
WindowsError: [Error 3] The system cannot find the path specified: 'D:\\proj\\Repro\\web\\node_modules\\babel-preset-react\\node_modules\\babel-plugin-transform-react-jsx\\node_modules\\babel-helper-builder-react-jsx\\node_modules\\babel-types\\node_modules\\babel-traverse\\node_modules\\babel-code-frame\\node_modules\\js-tokens\\changelog.md'
docker-compose returned -1

+1

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛? рдореИрдВ рдХреЗрд╡рд▓ Dockerfile рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ рдерд╛ред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдпрд╣ рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг рд╣рд░ рдХреЛрдИ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдпрд╣ рд╕рдорд╕реНрдпрд╛: https://github.com/npm/npm/issues/3697 .. рдореИрдВ рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдиреЛрдб рдХреЛ рдЙрдиреНрдирдд рдХрд░рдирд╛ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ npm 3+ рдкрд░) рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдкрд░рдорд╛рдгреБ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЕрдзрд┐рдХ рд╣реИ, рдФрд░ .dockerignore рдЕрднреА рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд╛рдоред

рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореИрдВ рдЗрд╕реЗ рд▓рд┐рдирдХреНрд╕ рдорд╢реАрди рдкрд░ рднреА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡реЙрд▓реНрдпреВрдо рд╕рдВрджрд░реНрдн рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд▓рд┐рдП рдЗрдЧреНрдиреЛрд░ рдХреЛ .ignignore рд▓рд┐рдЦреЗрдВред

рдореБрдЭреЗ рдЕрдкрдиреЗ рдРрдк рдХреЛ npm 3+ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдВрдбреЛрдЬрд╝ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@ esc-rtn .dockerignore рдлрд╝рд╛рдЗрд▓ рдХреЗрд╡рд▓ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕ рдлрд╛рдЗрд▓ рдХреЛ Dbuild_ рдХреЗ рджреМрд░рд╛рди рдбреЗрдореЙрди рдХреЛ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк "рд░рди" рдХреЗ рджреМрд░рд╛рди рдмрд╛рдЗрдВрдб-рдорд╛рдЙрдВрдЯреЗрдб рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╕ рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдЧрд╛ (рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдЬреЛ рд╣реЛрд╕реНрдЯ рдкрд░ рдореМрдЬреВрдж рд╣реИрдВ)ред

рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рднреА рдРрд╕рд╛ рд╣реА рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ: docker build рдЙрдореНрдореАрдж рдХреЗ docker-compose рдирд╣реАрдВред

рдореИрдВрдиреЗ GADHub рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рд╣реИ, README.md рдореЗрдВ рдиреЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде: https://github.com/stekershaw/docker-compose-ignore

рдХреЙрдореНрдкреЛрдЬрд╝реА 1.5.2 рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж .dockerignore рд▓рд┐рдП рд╕реБрдзрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдФрд░ рджреМрд░ docker-py рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛ред рдХреНрдпрд╛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдм рддрдп рд╣реИ, рдЖрдк 1.6.0 RC2 рд░рд┐рд▓реАрдЬ рдХреА рд░рдЪрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдмрд╕ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рд╡рд░реНрдЬрди 1.6.0rc2 рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХреА, рдПрдХ7636be рдмрдирд╛рдПрдБред

рдореЗрд░реЗ рд░реЗрдкреЛ рдореЗрдВ рддреАрди рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ 1.5.2 рдореЗрдВ рд╕реЗ рджреЛ рдЕрд╕рдлрд▓ рд░рд╣реЗред рдЕрдм 1.6.0rc2 рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ:

$ cat .dockerignore
files/test_dir
!files/test_dir/should_be_here_maybe

рдореБрдЭреЗ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ docker build рдФрд░ docker-compose build рдмреАрдЪ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИред

.dockerignore :

files/test_dir
!files/test_dir/should_be_here_maybe

docker-compose.yml :

test:
  build: .

Dockerfile :

FROM busybox
COPY . /context
CMD ["find", "/context"]
$ docker version
Client:
 Version:      1.10.0-rc1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   677c593
 Built:        Fri Jan 15 18:17:17 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.10.0-rc1
 API version:  1.22
 Go version:   go1.5.3
 Git commit:   677c593
 Built:        Fri Jan 15 18:17:17 2016
 OS/Arch:      linux/amd64

$ docker-compose version
docker-compose version 1.6.0rc2, build 695c692
docker-py version: 1.7.0-rc3
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1j 15 Oct 2014

$ mkdir -p files/test_dir
$ touch files/test_dir/should_be_here_maybe

$ find .
.
./.dockerignore
./docker-compose.yml
./Dockerfile
./files
./files/test_dir
./files/test_dir/should_be_here_maybe

$ docker build --no-cache -t 1607-docker-build .
Sending build context to Docker daemon  5.12 kB
Step 1 : FROM busybox
 ---> 0cb40641836c
Step 2 : COPY . /context
 ---> 859e12600100
Removing intermediate container 9067b263098b
Step 3 : CMD find /context
 ---> Running in 1ddc0a573492
 ---> b1b3beacf5f2
Removing intermediate container 1ddc0a573492
Successfully built b1b3beacf5f2

$ docker run 1607-docker-build
/context
/context/docker-compose.yml
/context/Dockerfile
/context/files
/context/files/test_dir
/context/files/test_dir/should_be_here_maybe
/context/.dockerignore

$ docker-compose build --no-cache
Building test
Step 1 : FROM busybox
 ---> 0cb40641836c
Step 2 : COPY . /context
 ---> d86507051d6d
Removing intermediate container 0af2cbf69b17
Step 3 : CMD find /context
 ---> Running in 8533dae3af74
 ---> 1f736ecb2b38
Removing intermediate container 8533dae3af74
Successfully built 1f736ecb2b38

$ docker-compose run test
/context
/context/docker-compose.yml
/context/Dockerfile
/context/files
/context/files/test_dir
/context/files/test_dir/should_be_here_maybe
/context/.dockerignore

рд╣рд╛рдп @рдЖрдирдВрдж , рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЖрдкрдХреЗ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдпрд╛ рдерд╛, рдЙрд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ / test_dir рдореЗрдВ рдПрдХ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдереАред рдпрджрд┐ рдореИрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ / test_dir рдореЗрдВ рдПрдХ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ docker build рд╕рд╛рде рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░реВрдВрдЧрд╛) рд▓реЗрдХрд┐рди рдпрд╣ docker-compose рд╕рд╛рде рдореМрдЬреВрдж рд╣реИ:

$ touch files/test_dir/should_not_be_here

$ docker build --no-cache -t 1607-docker-build .
Sending build context to Docker daemon  5.12 kB
Step 1 : FROM busybox
 ---> b175bcb79023
Step 2 : COPY . /context
 ---> a23d9645c21c
Removing intermediate container 8eb2bb23c4db
Step 3 : CMD find /context
 ---> Running in d9fef847acd8
 ---> e52ae84b1250
Removing intermediate container d9fef847acd8
Successfully built e52ae84b1250
SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

$ docker run --rm 1607-docker-build
/context
/context/Dockerfile
/context/files
/context/files/test_dir
/context/files/test_dir/should_be_here_maybe
/context/docker-compose.yml
/context/.dockerignore

$ docker-compose build --no-cache
Building test
Step 1 : FROM busybox
 ---> b175bcb79023
Step 2 : COPY . /context
 ---> 9df0cf4bfb69
Removing intermediate container 7820f982d59e
Step 3 : CMD find /context
 ---> Running in 06e1a0b89a45
 ---> 2c922dbc66d9
Removing intermediate container 06e1a0b89a45
Successfully built 2c922dbc66d9

$ docker-compose run test
ERROR: Interactive mode is not yet supported on Windows.
Please pass the -d flag when using `docker-compose run`.

$ docker-compose run -d test
dcitest_test_run_2

$ docker logs dcitest_test_run_2
/context
/context/Dockerfile
/context/files
/context/files/test_dir
/context/files/test_dir/should_not_be_here
/context/files/test_dir/should_be_here_maybe
/context/docker-compose.yml
/context/.dockerignore

рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рд╣реИ (рдореЗрд░реЗ рд╢реЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд┐рдЯ рдмрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП), рдбреЙрдХрдЯрд░ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ 1.5.2 рдФрд░ 1.6.0rc2, docker 1.9.1 рдХреЗ рд╕рд╛рде рдХрд░реЗрдВред

рдЙрдмрдВрдЯреВ 14.04 рдкрд░ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ 1.5.2 рдФрд░ рдбреЙрдХрдЯрд░ 1.9.1 рдХреЗ рд╕рд╛рде рд░рдирд┐рдВрдЧ рдареАрдХ рд╣реИ:

# cat .dockerignore
files/test_dir
!files/test_dir/should_be_here_maybe

# find .
.
./.dockerignore
./docker-compose.yml
./files
./files/test_dir
./files/test_dir/should_not_be_here
./files/test_dir/should_be_here_maybe
./Dockerfile

# docker-compose build --no-cache
Building test
Step 1 : FROM busybox
 ---> b175bcb79023
Step 2 : COPY . /context
 ---> c533a0768d5e
Removing intermediate container 0c057fe8eb82
Step 3 : CMD find /context
 ---> Running in e8a0cf1f58d8
 ---> 175777486a25
Removing intermediate container e8a0cf1f58d8
Successfully built 175777486a25

# docker-compose run test
/context
/context/docker-compose.yml
/context/.dockerignore
/context/files
/context/files/test_dir
/context/files/test_dir/should_be_here_maybe
/context/Dockerfile

рдЕрднреА рднреА рджреЛрдкрд╣рд░ рдХреЗ рдЗрд╕ рд╕рдмрд╕реЗ рдирд┐рдкрдЯрдиреЗред

рдбреЙрдХрд░ рд╕рдВрд╕реНрдХрд░рдг 1.10.1, 9e83765 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг 1.6.0, d99cad6 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

#docker-compose.yml
test:
  build: ./cdn
#Dockerfile
FROM busybox
COPY ["content/","/test/"]
RUN find /test/ -maxdepth 1
#.dockerignore
**/.DS_Store
**/.git
**/.bowerrc
**/bower_components
**/node_modules
**/npm-debug.log

рдЖрдЙрдЯрдкреБрдЯ docker build . рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ

docker-compose build --no-cache test рд╕рдм рдХреБрдЫ рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛

2992 рдореЗрдВ рдХреБрдЫ рдФрд░ .dockerignore рдлрд┐рдХреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ 1.6.1 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

рдзрдиреНрдпрд╡рд╛рдж @ рдкрд┐рдВрдбрд▓реА, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдЕрднреА рднреА рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдЯреВрд▓рдмреЙрдХреНрд╕ рд╕реЗ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ 1.6.2 рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦрддрд╛ рд╣реВрдВ:

$ docker-compose --version
docker-compose version 1.6.2, build e80fc83

$ find .
.
./.dockerignore
./docker-compose.yml
./Dockerfile
./files
./files/test_dir
./files/test_dir/should_be_here_maybe
./files/test_dir/should_not_be_here

$ cat .dockerignore
files/test_dir
!files/test_dir/should_be_here_maybe

$ docker-compose build --no-cache
Building test
Step 1 : FROM busybox
latest: Pulling from library/busybox
f810322bba2c: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:97473e34e311e6c1b3f61f2a721d038d1e5eef17d98d1353a513007cf46ca6bd
Status: Downloaded newer image for busybox:latest
 ---> 3240943c9ea3
Step 2 : COPY . /context
 ---> 85a65d7f861c
Removing intermediate container 386d3103d8ab
Step 3 : CMD find /context
 ---> Running in e5e29b5746c4
 ---> 2c2d57a899ea
Removing intermediate container e5e29b5746c4
Successfully built 2c2d57a899ea

$ docker-compose run -d test
dcitest_test_run_1

$ docker logs dcitest_test_run_1
/context
/context/Dockerfile
/context/files
/context/files/test_dir
/context/files/test_dir/should_be_here_maybe
/context/files/test_dir/should_not_be_here
/context/.dockerignore
/context/docker-compose.yml

рдпрд╣ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реИред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

$ docker-compose build --no-cache
Building web
Step 1 : FROM busybox
 ---> 3240943c9ea3
Step 2 : COPY . /context
 ---> 3619871879ad
Removing intermediate container 08432f688579
Step 3 : CMD find /context
 ---> Running in 5bbcf987c9e7
 ---> cf2bff2c1416
Removing intermediate container 5bbcf987c9e7
Successfully built cf2bff2c1416

$ docker-compose run -d web
Creating network "testdockerignore_default" with the default driver
testdockerignore_web_run_1

$ docker logs testdockerignore_web_run_1 
/context
/context/Dockerfile
/context/files
/context/files/test_dir
/context/files/test_dir/should_be_here
/context/docker-compose.yml
/context/.dockerignore

$ find .
.
./Dockerfile
./files
./files/test_dir
./files/test_dir/should_not_be_here
./files/test_dir/should_be_here
./docker-compose.yml
./.dockerignore

$ cat .dockerignore files/test_dir
!files/test_dir/should_be_here

рдЖрдкрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ pip show docker-py рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реИ?

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдореЗрд░рд╛ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИред

 Docker build .

рдореЗрд░реЗ рд▓рд┐рдпреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╣реА рдирд┐рд░реНрдорд╛рдг рдХреЛ docker-compose.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рд╕реЗ рдореЗрд░рд╛ рдирд┐рд░реНрдорд╛рдг рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реА .dockerignore рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рдиреЛрдб рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП node_modules рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдореЗрд░реЗ docker-compose.yml рд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЦрдВрдб рд╣реИ:

web:
  build: ./app
  ports:
    - "8080:8080"
  links:
    - mongodb

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдореИрдВ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдХрд╛ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ:

>docker-compose version
docker-compose version 1.6.2, build e80fc83
docker-py version: 1.7.2
CPython version: 2.7.11
OpenSSL version: OpenSSL 1.0.2d 9 Jul 2015

рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ 10, x64 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред

WIndows- рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджрд╛, рд╢рд╛рдпрдж рдкрде рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд╕рд╛рде?

рдкрддрд╛ рдирд╣реАрдВ рдХреИрд╕реЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдкрде рд╡рд┐рднрд╛рдЬрдХреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рд╕рд╣рд╛рдпрддрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдЕрдиреНрдпрдерд╛ред рдЕрднреА, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдкрд╣рд▓реЗ "рдЙрдкреЗрдХреНрд╖рд┐рдд" рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╕реЗ рдмрд╛рд╣рд░ рд▓реЗ рдЬрд╛рддреА рд╣реИ, рдЬрд╛рд╣рд┐рд░ рд╣реИ рдмрджрд╕реВрд░рддред

рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдореЗрд░реА .dockerignore рдлрд╝рд╛рдЗрд▓ рд╣реИ:

**/node_modules

рдЕрд╣рд╛! рдпрд╣ рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди рд╣реИ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред "** /" рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред

рдЬрдмрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реИ, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрдЧ рд╣реИред рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди ** / рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдареАрдХ рд╕реЗ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдпрдорд┐рдд рдбреЙрдХрдЯрд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

@ рдмрдлрд┐рд╢ рдФрд░ рдмрд╛рдХреА рд╕рднреА рдЬреЛ рджреЗрдЦрднрд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд░рд▓ .dockerignore рд╣реИ рдЬреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

livedata
readonly-data

.Dockerignore рдпрд╛ рддреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдмрд┐рд▓реНрдб рд╕рдВрджрд░реНрдн рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджреЛ рдлрд╝реЛрд▓реНрдбрд░ рдбреЗрдорди рдкрд░ рдЕрдкрд▓реЛрдб рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ _forever_) рдФрд░ рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╣реВрдВред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ 1.6.2 рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛, рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВред рдЬрдм рддрдХ рдореИрдВ рдПрдХ рд╣реА рд▓рдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ _again_ рджреЛрд╣рд░рд╛рдПрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдВрдбреЛ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред

+1, рд▓рд┐рдирдХреНрд╕ рдкрд░ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдЯреВрдЯ рдЧрдпрд╛ - рдРрд╕рд╛ рдордд рд╕реЛрдЪреЛ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рд╣реИред

@JonasT @nicbarker рдЖрдк рдХреИрд╕реЗ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ .dockerignore рдореЗрдВ рдирд╛рдорд┐рдд рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧ рд░рд╣рд╛ рд╣реИ? рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯрд╛рд░рдмреЙрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рддреЛ рдореИрдВ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИ, рдореИрдВрдиреЗ рдХреБрдЫ рдбреАрдмрдЧ рдХреЛ docker-py рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЕрднреА рднреА рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ:

$ pip list | grep docker
docker-compose (1.7.0.dev0, /Users/aanand/work/docker/compose)
docker-py (1.8.0rc2, /Users/aanand/work/docker/docker-py)

$ find .
.
./.dockerignore
./docker-compose.yml
./Dockerfile
./include.txt
./livedata
./livedata/exclude.txt
./readonly-data
./readonly-data/exclude.txt

$ cat .dockerignore
livedata
readonly-data

$ cat Dockerfile
FROM busybox
COPY . /data

$ docker-compose --verbose build --no-cache
<unrelated output>
docker.utils.utils.tar: Writing tar file to <open file '<fdopen>', mode 'w+b' at 0x1090f26f0>
docker.utils.utils.tar:   Adding .dockerignore
docker.utils.utils.tar:   Adding Dockerfile
docker.utils.utils.tar:   Adding docker-compose.yml
docker.utils.utils.tar:   Adding include.txt
docker.utils.utils.tar: Done
<unrelated output>

@aanand рдЗрд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдореИрдВ рдбреЙрдХрдлрд░реНрд▓ рдХреЛ ./context рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реВрдВ рдФрд░ "build: ./context/" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреЛрдИ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рдж рдлрд┐рд░ рдЬрдм рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд╛рдордиреЗ рдЖрдИ, рддреЛ рдореИрдВрдиреЗ "docker build" рдХреЗ рд╕рд╛рде рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рддрддреНрдХрд╛рд▓ рднреА рдерд╛ред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рдмрдбрд╝реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдереА, рддреЛ рдмрд┐рд▓реНрдб рдХреЛ ./context рдЬрд╛рдирд╛ рдЗрд╕реЗ рдФрд░ рддреЗрдЬрд╝ рдмрдирд╛ рджреЗрдЧрд╛ред

@dnephin рд╡рд╣рд╛рдБ "рд╕рдВрджрд░реНрдн" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдЕрдиреНрдп рдлрд╝реЛрд▓реНрдбрд░ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рддреАрди рдЕрдиреНрдп рдкрд╛рда рдлрд╝рд╛рдЗрд▓реЗрдВред

@JonasT рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдмрдбрд╝рд╛ .git рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд░рд╣реА рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: NVM, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдмреЗрд╡рдХреВрдл рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЧрд▓рдд rsync'ed рдХреЙрдкреА>> рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рджреЛрд╕реНрддреЛрдВ .. рдкрд░ рдЬрд╛рдБрдЪ рдХреАред

рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдкреБрд░рд╛рдиреЗ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдВрдЪ рдХреА рдереА, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЙрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрд┐рдП рдЧрдП рдХреБрдЫ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд┐рдпрд╛ рдерд╛ред

рдпрд╣ рдПрдХ Windows рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕? :)

рдирдорд╕реНрддреЗ,
рдореЗрд░реЗ рдкрд╛рд╕ linux рд╣реИ, 1.6.2 рдХреА рд░рдЪрдирд╛ рд╣реИ, 1.10.3 рд╣реИ ... рдареАрдХ рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдбреЙрдХрдЯрд░ .dockerignore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред

@ulrichSchreiner рдХреНрдпрд╛ рдЖрдк рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдирдорд╕реНрддреЗ,

рдпрд╣рд╛рдБ рдПрдХ рдЬрд┐рд╕реНрдЯ (https://gist.github.com/ulrichSchreiner/566815cea26ce55b95207e7795cf6962) рд╣реИред .dockerignore рдореЗрдВ **/node_modules рд╣реЛрддреЗ рд╣реИрдВ Dockerfile t1/a/b/c/node_modules рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ "docker build ..." рдХреЗ рд╕рд╛рде рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ (рдпрд╣ .dockerignore рдореЗрдВ рдкреИрдЯрд░реНрди рдХреЗ рдХрд╛рд░рдг рд╕рд╣реА рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЖрдк рдЬрд┐рд╕реНрдЯ рдХреА рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рджрд┐рдП рдЧрдП "docker-compose.yml" рдХреЗ рд╕рд╛рде рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрди рдЬрд╛рддрд╛ рд╣реИ -> docker-compose .dockerignore рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рджрд░реНрдж рд╣реИ рдЬрдм рдЖрдкрдХреЗ node_modules рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реИрдХрдбрд╝реЛрдВ megs рд╣реИ ....

рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ

docker-compose version 1.6.2, build 4d72027

рдареАрдХ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ docker-py рдХреЛ рд╢рд╛рдпрдж **/ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдмрдЧ рдорд┐рд▓ рдЧрдпрд╛ рд╣реИред

IIRC, ** рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдХрдореА рд╣рдорд╛рд░реЗ .dockerignore рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдПрдХ рдЬреНрдЮрд╛рдд рд╕реАрдорд╛ рд╣реИред Https://github.com/docker/docker-py/pull/721#issuecomment -135065043 рджреЗрдЦреЗрдВ

рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдпрд╣рд╛рдБред .dockerignore рдХреЛ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
docker-compose version 1.6.2, build 4d72027 OSX

./.dockerignore
./Dockerfile (symlink to ./server/docker/cms/Dockerfile)
./server/docker/docker-compose.yml

.Dockerignore рдХреА рд╕рд╛рдордЧреНрд░реА

./.git
./.vagrant

.vagrant 16GB рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ "рдмрд┐рдЧ рдбреАрд▓ (tm)" рд╣реИред

рдорд╛рдлрд╝ рдХрд░рдирд╛,

docker-machine version 0.7.0, build a650a40

docker-compose version 1.7.0, build 0d7bf73
docker-py version: 1.8.0
CPython version: 2.7.9
OpenSSL version: OpenSSL 1.0.1j 15 Oct 2014

Client:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Tue Apr 26 23:44:17 2016
 OS/Arch:      darwin/amd64

Server:
 Version:      1.11.1
 API version:  1.23
 Go version:   go1.5.4
 Git commit:   5604cbe
 Built:        Wed Apr 27 00:34:20 2016
 OS/Arch:      linux/amd64

@lattwood рдПрдХ рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ - рдореИрдВрдиреЗ рдЗрд╕реЗ https://github.com/docker/docker-py/pock/1065 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рд╣реИ ./ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзрдиреНрдпрд╡рд╛рдж!

рдЙрдмрдВрдЯреВ 14.04 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдореЗрд░рд╛ dockerignore **/always_restart.txt ред рдПрдХ рдирд┐рдпрдорд┐рдд docker build (v1.11.2) рдкрд░, рдореИрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рджреЗрдЦрддрд╛, рд▓реЗрдХрд┐рди рдХрдореНрдкреЛрдЬрд╝ (v1.7.1) рдХреЗ рд╕рд╛рде, рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВред

Edit1: рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ docker-py рдбрдмрд▓ рддрд╛рд░рд╛рдВрдХрди рд╕рдВрдХреЗрддрди рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╛ рддреЛ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: https://github.com/docker/docker-py/blob/1.9ред 0 рд░рд┐рд▓реАрдЬ / рдкрд░реАрдХреНрд╖рдг / рдЗрдХрд╛рдИ / utils_test.py # L721

Edit2: рдкреИрдЯрд░реНрди */tmp/always_restart.txt рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП ** рдкреИрдЯрд░реНрди рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

@ agilgur5 рд╕рд╣реА рд╣реИ, рдпрд╣ https://github.com/docker/docker-py/issues/1117 рдмрдирд╛рдпрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ DOCKERFILE рдореЗрдВ рдмрджрд╕реВрд░рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб:
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯ-рдЪреЗрдХ-рдЗрдЧреНрдиреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдЗрд╕ рдкреНрд░рдХрд╛рд░ git init ), рд╣рдо рд╕рд┐рд░реНрдл рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдзреНрдпрд╛рди рджреЗрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЛ рд╕рднреА COPY s (рдпрд╛ ADD s) рдХреЗ рдмрд╛рдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рдЕрдиреНрдпрдерд╛ рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЕрд╡рд╛рдВрдЫрд┐рдд рдлрд╛рдЗрд▓реЗрдВ рдорд┐рд▓реАрдВред

RUN mkdir /app/
WORKDIR   /app/
# ...
# all the COPYs
# ...
RUN git init
COPY ./.dockerignore /app/
RUN mv .dockerignore .gitignore
RUN DEL_ME=$(find . -print0 | xargs -0) && echo Forcing deletion of .dockerignore files && git check-ignore --no-index $DEL_ME > tmp.txt
RUN DEL_ME=$(cat tmp.txt | xargs) && echo DELETING: $DEL_ME tmp.txt && rm -f -d -r $DEL_ME tmp.txt

.Gitignore рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдХреНрдпреЛрдВрдХрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ)

COPY ./.gitignore      /app/
COPY ./.dockerignore   /app/
RUN DEL_ME=$(find . -print0 | xargs -0) && echo gitignore && git check-ignore --no-index $DEL_ME > tmp.txt
RUN rm .gitignore && mv .dockerignore .gitignore
RUN DEL_ME=$(find . -print0 | xargs -0) && echo dockerignore && git check-ignore --no-index $DEL_ME >> tmp.txt
RUN DEL_ME=$(cat tmp.txt | xargs) && echo DELETING: DEL_ME tmp.txt && rm -f -d -r $DEL_ME tmp.txt

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП docker-compose.yml рдореЗрдВ рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрдВрдЯреЗрдирд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдХреЗ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рдУрд╡рд░рд░рд╛рдЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХрдВрдЯреЗрдирд░ рдореЗрдВ node_modules рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред

рддреЛ, рд╣рдорд╛рд░реЗ docker-compose.yml рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:

  my_app:
    build: ./my_app
    volumes:
      - ./my_app:/app
      # prevent the mounting above from overwriting the following
      - /app/node_modules

volumes рдореВрд▓реНрдп рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИ рдЬреЛ .dockerignore рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рд╣реИ ...

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕реБрдЭрд╛рд╡ рд╣реИ:

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛, "[рдореЗрдЯрд╛ рдореБрджреНрджрд╛]:ред Dockerignore рдирд┐рдпрдореЛрдВ рдХрд╛ рдЧрд▓рдд рд╣реИрдВрдбрд▓рд┐рдВрдЧ" (рдпрд╛ "[рдЯреНрд░реИрдХрд┐рдВрдЧ рдореБрджреНрджрд╛]: рдЧрд▓рдд рд╣реИрдВрдбрд▓рд┐рдВрдЧ ...", рдпрд╛ рдмрд╕ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрдВрдж рдХрд░рдирд╛ рдЫреЛрдЯреЗ, рдЕрдзрд┐рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдпреЛрдЧреНрдп рдореБрджреНрджреЗред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ (1) рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ .dockerignore рдлрд╝рд╛рдЗрд▓ рдХреЛ "рдЕрдирджреЗрдЦрд╛" рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЬреЛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬрд╛рд░реА рд╢реАрд░реНрд╖рдХ рдХрд╣рддрд╛ рд╣реИ)ред рдЗрд╕рдиреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ (2), рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдХрдИ рд╣рд┐рд╕реНрд╕реЗ рд╣реИрдВред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ ( ** рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг) рд╣реИ рдФрд░ рдпрд╣ рдирдпрд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрднреА рджрд╛рдпрд░ рдХрд┐рдпрд╛ рд╣реИ (рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдХреА рдкреВрд░реНрд╡рд╡рд░реНрддреА рд╕реНрдерд┐рддрд┐)ред рдФрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдзрд╛рдЧрд╛ рдЗрддрдирд╛ рд▓рдВрдмрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ), рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдзрд╛рдЧреЗ рдХреЗ рднреАрддрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп ".dockerignore рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ" рдореБрджреНрджреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореИрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рджрд╛рдЦрд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрд▓рдЧрд╛рд╡ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдореБрджреНрджрд╛ рдХрднреА рднреА рдмрдВрдж рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рдпрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рдВрджрд░реНрдн рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред

рдореИрдВрдиреЗ **/**/node_modules рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рдмрдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб_рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ред

рдЗрд╕ рд╣реЙрдЯрдлрд╝рд┐рдХреНрд╕ рд╕реЗ рдкрд╣рд▓реЗ npm рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдореЗрд░реЗ рдкрд╛рд╕ "рдПрдХреНрд╕реЗрд╕ рд░рд╛рдЗрдЯ рдПрд░рд░" рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдВ рдереЗ (рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЙрдХрд┐рдирд░реЛрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг)ред

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

macOS рд╕рд┐рдПрд░рд╛ 10.12.2
рдбреЙрдХрд░ рд╕рдВрд╕реНрдХрд░рдг 1.12.5, 7392c3b рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
docker-compose рд╕рдВрд╕реНрдХрд░рдг 1.9.0, 2585387 рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

** рдкреИрдЯрд░реНрди рдХрд╛ рдореБрджреНрджрд╛ 1.11.2 рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЕрдВрддрд┐рдо-рдкрдВрдХреНрддрд┐ рдХреА рд╡рд░реАрдпрддрд╛ рд╡рд╛рд▓реЗ рдПрдХ рдЬреИрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдмрдХрд╛рдпрд╛ рдореБрджреНрджреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ # 3931 рдФрд░ # 3886 рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЖрдЧреЗ рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдЙрди рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдбреЙрдХрдЯрд░-рд░рдЪрдирд╛ рдореЗрд░реЗ .dockerignore рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣реА рд╣реИ рдпрд╛ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдлрд▓ рд╣реЛ рд░рд╣реА рд╣реИ (docker рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬреЛ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдпрд╣рд╛рдБ рдЙрддрд░рд╛: http://stackoverflow.com/questions/42883596/equivalent-builds-dont-behave-the-same

рдФрд░ рдпрд╣рд╛рдБ рдореЗрд░рд╛ .dockerignore рдлрд╝рд╛рдЗрд▓ рд╣реИ (рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ):

$ cat .dockerignore 
*
!www
!app
!inc
*/node_modules
*/bower_components
**/*.log
**/Dockerfile
**/.gitignore

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ docker-compose build рдкреВрд░реА рддрд░рд╣ рд╕реЗ .dockerignore рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВред
docker build рдЙрдореНрдореАрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

$ docker-compose version                                                                                                                       
docker-compose version 1.14.0, build c7bdf9e
docker-py version: 2.3.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

рдореЗрд░рд╛ .dockerignore рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ

.bundle
.git
.gitignore
test
tmp
log

рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИред
рдореИрдВ Ubuntu 16.04 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред

BTW: рдХреНрдпрд╛ рдХреЛрдИ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВ docker-compose build docker build рдХреЗ рд╕рдорд╛рди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, Dockerfile рдФрд░ рдЙрд╕ рд╕рднреА рд╕рд╛рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП? рдПрдХ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдХреНрдпреЛрдВ рд╣реИ (рдЬреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)?

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╣рдордиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХреИрд╕реЗ рдЦреЛрд▓рд╛? рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдЖрд╣ред рдзрдиреНрдпрд╡рд╛рдж рд╢рд┐рдиред рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

рдореИрдВрдиреЗ рд╕реБрдЭрд╛рдП рдЧрдП # 3931 рдФрд░ # 3886 рдЬреИрд╕реЗ рдореБрджреНрджреЛрдВ рдХреЛ рдкрдврд╝рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ .dockerignore рд╡рд┐рд╢реЗрд╖ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдирдХреНрд╢рд╛ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрд╛ред
рдореИрдВ рдореЗрд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рдореЗрд░реЗ рдбреЙрдХреНрд╕рд░рд┐рдЧрдиреЛрд░ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред

рдЗрддрдирд╛ рдмреЗрд╡рдХреВрдл, рдпрд╣ рдореЗрд░реА рдЧрд▓рддреА рдереА ред: рдЪрдХреНрдХрд░_рдлреЗрд╕:
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдХрд┐ рдХреБрдЫ рднреА рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рд╣реИред рдЙрд╕рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

app:
  build: .
  container_name: my_app
  volumes:
    - .:/my_app

рдпрд╣ рдЕрдирд╕реБрд▓рдЭрд╛ рд▓рдЧрддрд╛ рд╣реИ?

version: '3.4'
services:
  ui:
    build:
      context: ./source/ui
      dockerfile: Dockerfile
      target: development
    command: bash -c "yarn dev"
    ports:
      - '9091:9091'
      - '9092:9092'
    expose:
      - '9091'
      - '9092'
    volumes:
      - ./source/ui:/app
      - node-modules:/app/node_modules

    environment:
      - PORT=9091
      - HMR_PORT=9092
      - NODE_ENV=development
      - API_HOST=api.docker:7001

volumes:
  node-modules:

in source/ui/.dockerignore:

node_modules
рдЬрд┐рд▓реЗ
`` `

рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдЕрдВрдд рдореЗрдВ рд╡реИрд╕реЗ рднреА рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ ...

рдореБрдЭреЗ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдмрд╕ рдЬрдм рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдореИрдВ рдПрдХ рдкреБрд░рд╛рдиреЗ рд░рдЪрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╣реВрдВред docker-compose version 1.22.0-rc1, build e7de1bc3 рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐, рдбреЗрдмрд┐рдпрди / ubuntu рдХреЗ рд╕рд╛рде рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд░рдЪрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИред

рдЕрдм рдпрд╣ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА docker build рдЬреИрд╕рд╛ рдирд╣реАрдВ рд╣реИ

рдпрд╣ рдЕрднреА рднреА рдЕрдирд╕реБрд▓рдЭрд╛ рд╣реИред рдореИрдХ рдХреЗ рд▓рд┐рдП рд░рдирд┐рдВрдЧ рдбреЙрдХрд░, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (рдбреЙрдХрд░ 18.03.1-ce-mac65)ред

рдореЗрд░рд╛ред

**/package-lock.json
**/node_modules

рд▓реЗрдХрд┐рди рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рджреЛрдиреЛрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрд╛рд╕ рд╣реЛ рд░рд╣реЗ рд╣реИрдВред

https://github.com/docker/docker-py/pull/2065 1.22.0 RC2 рдореЗрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдореИрдХ рд╕рдВрд╕реНрдХрд░рдг 18.06.1-ce-mac73 (26764) рд▓рд┐рдП рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдмрдЧ рдЕрднреА рднреА рд╣реИред

image

рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝рд┐рд╢рди рд╕рдВрд╕реНрдХрд░рдг 1.22.0, f46880f рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ
рдбреЙрдХрд░ рд╕рдВрд╕реНрдХрд░рдг 18.06.1-CE, e68fc7a рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ

Ubuntu 16.04 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред Xenial рдФрд░ docker-compose рдмрд┐рд▓реНрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред dockerignore:

**/*.jpg **/*.png **/*.pyc **/*.solverstate **/*.caffemodel **/*.tgz **/.pytest_cache **/*__pycache__* **/.git **/node_modules *.egg-info .eggs *Dockerfile* build dist
рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рджреЛрд╣рд░реЗ рддрд╛рд░рд╛рдВрдХрди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде?

рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рджреЛрд╣рд░реЗ рддрд╛рд░рд╛рдВрдХрди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдирд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде?

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ ( **/.tox )ред

рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
docker-compose.yml рдХреЛ рдРрдк рд░реВрдЯ рдкрде рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ

services:
  api:
    build:
      context: ./docker/api

рдореЗрд░реА рдлрд╛рдЗрд▓реЗрдВ рдкреЗрдбрд╝:

- app/
-- docker/
--- api/
---- .dockerignore <- it works!
-- docker-compose.yml
-- .dockerignore <- it does not work for contexts

рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

@ zymtx5g79k рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛:

- .dockerignore
- docker/
-- development/
--- docker-compose.yml  

рдбреЛрдХрд░-compose.yml

version: '3'
services:
  web:
    build:
      context: ../../.

@rodrigobdz , рдХреГрдкрдпрд╛ рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
docker-compose.yml :

services:
  api:
    build:
      context: ./../../
version: '3'

.dockerignore :

/docker

рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕рдВрд░рдЪрдирд╛ :

- docker/
-- api/
--- docker-compose.yml
- .dockerignore

рдЕрднреА рднреА рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо, .git рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╣реИред рдореИрдВ рдпрд╣рд╛рдБ рдЕрдкрдиреЗ .dockerignore рдкреЛрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдореБрджреНрджрд╛ рд╣реЛред

# Custom
docker-compose.yml
docs/
livereload.js*
yarn-error.log
v8-compile-cache-0
# vim
*.swp

.git
.gitignore
README.md

@rodrigobdz рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВ (рдЪрд▓ рд░рд╣рд╛ рд╣реИ рд╕рдВрд╕реНрдХрд░рдг 1.22.0 рд░рдЪрдирд╛рдХрд╛рд░);

рдкрд░реАрдХреНрд╖рдг рддреИрдпрд╛рд░ рдХрд░реЗрдВ;

mkdir repro-1607 && cd repro-1607
mkdir -p docker/development/
mkdir -p ./.git/this-is-a-git-repo
echo "this is README.md" > README.md

cat > docker/development/docker-compose.yml -<<EOF
version: '3'
services:
  web:
    build:
      context: ../../.
EOF

cat > ./.dockerignore -<<EOF
# Custom
docker-compose.yml
docs/
livereload.js*
yarn-error.log
v8-compile-cache-0
# vim
*.swp

.git
.gitignore
README.md
EOF

cat > Dockerfile -<<EOF
FROM alpine
RUN apk add --no-cache tree
COPY . /foobar/
CMD tree -a /foobar/
EOF

рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ;

cd docker/development/
docker-compose build --no-cache

Building web
Step 1/4 : FROM alpine
 ---> 11cd0b38bc3c
Step 2/4 : RUN apk add --no-cache tree
 ---> Running in 8767bc07dad9
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/1) Installing tree (1.7.0-r1)
Executing busybox-1.28.4-r0.trigger
OK: 5 MiB in 14 packages
Removing intermediate container 8767bc07dad9
 ---> 3916d3b689bb
Step 3/4 : COPY . /foobar/
 ---> 76ab68d75f88
Step 4/4 : CMD tree -a /foobar/
 ---> Running in 9891624b3cab
Removing intermediate container 9891624b3cab
 ---> d22b81d149f2
Successfully built d22b81d149f2
Successfully tagged development_web:latest

рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ;

docker run --rm development_web:latest
/foobar/
тФЬтФАтФА .dockerignore
тФЬтФАтФА Dockerfile
тФФтФАтФА docker
    тФФтФАтФА development
        тФФтФАтФА docker-compose.yml

2 directories, 3 files

рдЕрдм, .dockerignore рдирд╛рдо рдмрджрд▓реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ;

mv ../../.dockerignore ../../.dockerignore.disabled
docker-compose build --no-cache

Building web
Step 1/4 : FROM alpine
....

рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдм рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЫрд╡рд┐ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ:

docker run --rm development_web:latest
/foobar/
тФЬтФАтФА .dockerignore.disabled
тФЬтФАтФА .git
тФВ┬а┬а тФФтФАтФА this-is-a-git-repo
тФЬтФАтФА Dockerfile
тФЬтФАтФА README.md
тФФтФАтФА docker
    тФФтФАтФА development
        тФФтФАтФА docker-compose.yml

4 directories, 4 files

(рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдкрд╣рд▓реЗ рд░рди рдХрд╛ рдЕрдкрдбреЗрдЯреЗрдб рдЖрдЙрдЯрдкреБрдЯ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ tree -a рдкрд╣рд▓реА рдмрд╛рд░ tree рдЪрд▓рд╛рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдерд╛)

@thaJeztah рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдореБрджреНрджрд╛ рдорд┐рд▓ рдЧрдпрд╛ред

рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ https://github.com/docker/compose/issues/2098#issue -108463351 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИред рдореИрдВ рдЕрдкрдиреЗ Dockerfile рдореЗрдВ COPY рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ https://github.com/docker/compose/issues/2098#issuecomment -143505943 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдорд╛рддреНрд░рд╛ .dockerignore рдорд╛рддреНрд░рд╛ рдореЗрдВ рд▓рдЧрд╛рдП рдЬрд╛рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рд╣реИред

рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ # 2098 (рдЯрд┐рдкреНрдкрдгреА) рдореЗрдВ рд╡рд░реНрдгрд┐рдд .dockerignore рдХреЛ рд╡реЙрд▓реНрдпреВрдо рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдирд╣реАрдВ, рдЬрдм рдореЗрдЬрдмрд╛рди рд╕реЗ рдПрдХ рдорд╛рд░реНрдЧ рдХреЛ рдмрд╛рдВрдзрддреЗ рд╣реИрдВ, рддреЛ рдЙрд╕ рдХреЗ "рдмреАрдЪ рдореЗрдВ" docker рдирд╣реАрдВ рд╣реЛрдЧрд╛; рд▓рд┐рдирдХреНрд╕ рдкрд░, рдпрд╣ рд╕рдЪрдореБрдЪ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╣реЛрд╕реНрдЯ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред рдбреЙрдХрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ (рдореИрдХ / рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░), рд╡реАрдПрдо рдХреЗ рдЕрдВрджрд░ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд "рдЬрд╛рджреВ" рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд╣рд╛рдВ рдбреЗрдореЙрди (рдФрд░ рдХрдВрдЯреЗрдирд░) рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рднреА рдРрд╕рд╛ рд╣реА рдХрд░ рд░рд╣рд╛ рд╣реИред

.dockerignore рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд┐рд▓реНрдб рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рдерд╛; рдЫрд╡рд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ / рд╡рд╛рдВрдЫрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдбреЗрдорди рдХреЛ рдлрд╛рдЗрд▓реЗрдВ рднреЗрдЬрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рд╕рдореБрджрд╛рдп рдореЗрдВ рдФрд░ рдЧрд▓рддрдлрд╣рдореА рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдбреЙрдХреНрд╕ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗрд╡рд▓ .dockerignore рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рдмрдЬрд╛рдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЕрдзрд┐рдХ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред

рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рд╡рд╣ рдкреГрд╖реНрда рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдФрд░ docker build рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд░рд╣рд╛ рд╣реИ; рдЙрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ; рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рдХрдорд╛рдВрдб / рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЦреИрд░, рдЕрдЧрд░ рдпрд╣ рдЧрд▓рддрдлрд╣рдореА рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд░реЛрдд рд╣реИ, рдФрд░ рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣рд╛рдБ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдПрдХ рднреА рд╡рд╛рдХреНрдп рд╣рдореЗрдВ @thaJeztah рдФрд░ рдиреАрдЪреЗ рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛ рд▓реЗрддрд╛ рдерд╛ ред


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореМрдЬреВрджрд╛ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдЧрд▓рдд рд╕рдордЭрддреЗ рд╣реИрдВ

рдЕрдВрдХ 1607

1607

рдЕрдВрдХ 2098

2098

рдмрд╕ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ +1 рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдореИрдВ рдбреЙрдХ-рдХреЛрдкреЛрдЬрд╝ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ: 1.23.2 (рдирд╡реАрдирддрдо рдореИрдВ рд╣реЛрдордмреНрд░реЗ рдФрд░ рдкреАрдЖрдИрдкреА рдХреЗ рдмреАрдЪ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реВрдВ)
рдУрдПрд╕: рдореИрдХ рдУрдПрд╕ 10.14.2

рдпрд╣ рдЕрднреА рднреА рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдореЗрд░реЗ .dockerfile рдХреА рдЕрдирджреЗрдЦреА рдХрд░ рд░рд╣рд╛ рд╣реИред рдорддрд▓рдм рд╕рдордп рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡реЙрд▓реНрдпреВрдо рд╕рдВрджрд░реНрдн рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред рд╡реЙрд▓реНрдпреВрдо рдХреЗ рд▓рд┐рдП рдЗрдЧреНрдиреЛрд░ рдХреЛ .ignignore рд▓рд┐рдЦреЗрдВред

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рддрдп рдХрд░ рджрд┐рдпрд╛ рд╣реИ - рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдПрдХ рдорд╛рдЙрдВрдЯреЗрдб рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдПрдХ .dockerignore рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрдЧрд╛ред

@xvrqt рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рд╣рдлрд╝реНрддреЗ рдореЗрдВ рдШрдВрдЯреЛрдВ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдкреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рдореЗрд░реА рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ .dockerignore рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдЕрд╡рд░реБрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛)ред рдпрд╣ рдереЛрдбрд╝реЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред

рдЙрд╕ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдирдорд╕реНрддреЗ! рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рдореИрдВрдиреЗ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд┐рдЯ рддреИрдпрд╛рд░ рдХрд┐рдП рд╣реИрдВред рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рдЬрд┐рдирдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рднреА рдпрд╣ рд░рд┐рдореЛрдЯ рдЧреАрдЯ рд░реЗрдкреЛ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп .dockerignore рд▓реЗрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

https://github.com/LocoDelAssembly/docker-compose-dockerignore

рдХреНрдпрд╛ рдореБрдЭреЗ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐ рдХреА рдЙрдореНрдореАрдж рд╣реИ? рд╡реЗрдирд┐рд▓рд╛ рдбреЛрдХрд░ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЯреИрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдФрд░ рд╕рдорд╛рдзрд╛рди рдФрд░ рдлрд┐рд░ docker-compose.yml рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛?

рдзрдиреНрдпрд╡рд╛рдж

рд╡реЗрдирд┐рд▓рд╛ рдбреЛрдХрд░ рдХреЗ рд╕рд╛рде рдЫрд╡рд┐ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдЯреИрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рдФрд░ рд╕рдорд╛рдзрд╛рди рдФрд░ рдлрд┐рд░ docker-compose.yml рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛?

рдпрджрд┐ рдЖрдк рдХрдореНрдкреЛрдЬрд╝ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбреЙрдХрдЯрд░ рдХреЛ рдореВрд▓ docker build рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП COMPOSE_DOCKER_CLI_BUILD=1 (рдФрд░ DOCKER_BUILDKIT=1 ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛ рд░рд╣реА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдирдпрд╛ рдЯрд┐рдХрдЯ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ)

рдереИрдВрдХреНрд╕ @thaJeztah! COMPOSE_DOCKER_CLI_BUILD=1 рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ DOCKER_BUILDKIT=1 рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ)ред

https://travis-ci.org/LocoDelAssembly/docker-compose-dockerignore/builds/658351109

рд╣рдореНрдо, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдбреЙрдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдЬреЛ рд╡рд╣рд╛рдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ; docker 18.06 рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ (рдФрд░ EOL); рдбреЙрдХ рдХреЗ рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрд┐рд▓реНрдбрдХрд┐рдЯ рдХрд╛ рд╢реБрд░реБрдЖрддреА рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬреЛ рдЕрднреА рддрдХ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рдерд╛ред

`` `
=> ERROR [рдЖрдВрддрд░рд┐рдХ] docker.io/library/alpine:3.9.5 рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░реЗрдВ
218 => ERROR [1/5] F do do.io/library/alpine:3.9.5.0 рд╕реЗ
219 => => do do.io/library/alpine:3.9.5 0.0s рд╣рд▓ рдХрд░реЗрдВ
220 ------
221> [рдЖрдВрддрд░рд┐рдХ] docker.io/library/alpine:3.9.5 рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░реЗрдВ:
222 ------
223 ------
224> [1/5] docker.io/library/ рдЕрд▓реНрдкрд╛рдЗрди рд╕реЗ: 3.9.5 :
225 ------
226failed рджреГрд╢реНрдпрдкрдЯрд▓ dockerfile.v0 рд╕рд╛рде рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдирд┐рд░реНрдорд╛рдг рдПрд▓рдПрд▓рдмреА рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛: рд▓реЛрдб рдХреИрд╢ рдХреБрдВрдЬреА рдореЗрдВ рд╡рд┐рдлрд▓: docker.io/library/ рдЕрд▓реНрдкрд╛рдЗрди: 3.9.5 рдирд╣реАрдВ рдорд┐рд▓рд╛

рдУрд╣, рд╣рдореНрдо, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХрд╛ рдЯреНрд░реИрд╡рд┐рд╕ рдбреЙрдХрдЯрд░ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ (рдореЗрд░реЗ рдлреЛрди рд╕реЗ рдкрдврд╝рдирд╛); рдХреНрдпрд╛ рдпрд╣ рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ? рдпрджрд┐ рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж docker info рдФрд░ docker version рдХрджрдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ docker рдХрд╛ рд╕рд╣реА (19.03.x) рд╕рдВрд╕реНрдХрд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ?

рдпрд╣рд╛рдБ рдпрд╣ https://travis-ci.org/LocoDelAssembly/docker-compose-dockerignore/builds/658435194 рд╣реИ

рд╕рд╛рд░рд╛рдВрд╢

рджреЛрдиреЛрдВ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЛрдХрд░ рд╕рдВрд╕реНрдХрд░рдг

$ docker version
Client: Docker Engine - Community
 Version:           19.03.7
 API version:       1.40
 Go version:        go1.12.17
 Git commit:        7141c199a2
 Built:             Wed Mar  4 01:22:36 2020
 OS/Arch:           linux/amd64
 Experimental:      false
Server: Docker Engine - Community
 Engine:
  Version:          19.03.7
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.17
  Git commit:       7141c199a2
  Built:            Wed Mar  4 01:21:08 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

docker info рдЖрдЙрдЯрдкреБрдЯ рдереЛрдбрд╝рд╛ рдмрдбрд╝рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди Server Version: 19.03.7 ред

docker- рд░рдЪрдирд╛ рд╕рдВрд╕реНрдХрд░рдг

DOCKER_COMPOSE_VERSION = 1.26.0-rc2

$ docker-compose version
docker-compose version 1.26.0-rc1, build 07cab513
docker-py version: 4.2.0
CPython version: 3.7.6
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

(рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЧрд▓рдд рд╣реИ, рдпрд╣ rc2 рд╣реИ, рдмрд┐рд▓реНрдб рд╣реИрд╢ rc2 рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ)

DOCKER_COMPOSE_VERSION = 1.25.4

$ docker-compose version
docker-compose version 1.25.4, build 8d51620a
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

19.03.8 рдореЗрдВ рдореБрджреНрджрд╛ рдЕрднреА рднреА рд╡рд┐рджреНрдпрдорд╛рди рд╣реИред

19.03.8 рдореЗрдВ рдореБрджреНрджрд╛ рдЕрднреА рднреА рд╡рд┐рджреНрдпрдорд╛рди рд╣реИред

рд╕рд╣реА рдмрд╛рддред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд╡реАрдирддрдо 1.25 рдФрд░ 1.26 рдбреЙрдХ-рдХрдореНрдкреЛрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдЯреЗрд╕реНрдЯ рд░реЗрдкреЛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕рднреА рдХреЛ https://github.com/LocoDelAssembly/docker-compose-dockerignore рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЬрд╛рд░реА рд╣реИ

рдмрд┐рд▓реНрдб рдЬрд╣рд╛рдВ рдЬрд╛рдирдХрд╛рд░реА рдореИрдВ рдКрдкрд░ рдкреЗрд╕реНрдЯ рдХреА рдПрдХ рд╣реА рддрд░рд╣ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: https://travis-ci.org/github/LocoDelAssembly/docker-compose-dockerignore/builds/673393656

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ, .dockerignore docker-compose рд╕рд╛рде рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dimsav picture dimsav  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

maltefiala picture maltefiala  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guycalledseven picture guycalledseven  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Hendrik-H picture Hendrik-H  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bergtwvd picture bergtwvd  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ