I'm working on a yarn monorepo and have a universal Dockerfile at the root of the project. The setup involves two stages: one for building the application and another for running it. In the target package that I'm trying to build, I want to implement a .dockerignore file to manage which files get included in the Docker image. The contents of my .dockerignore file look like this:
```
*
!
dist
!
scripts
!
package.json
```
However, I'm new to Docker and unsure if it's possible to apply the .dockerignore rules from within the nested package folder itself. Any insights would be much appreciated!
2 Answers
As far as I know, the .dockerignore file only works from the root of the context folder, not from within nested folders. To exclude files in your target package, you could place the .dockerignore file in the root and set up your patterns accordingly. That way, you can control what gets included without affecting your entire build process.
You can use the `COPY --exclude=` feature to include or exclude certain files during the copy process. Check out the documentation for more details! The link is here: https://docs.docker.com/reference/dockerfile/#copy---exclude
Is it possible to reference the .dockerignore file directly? I want to know if it can handle the `!` patterns too.
That makes sense! I'm aiming to create a universal setup for multiple packages in the future, and I need to be mindful about which files are necessary for the build. Thanks for the tip!