I'm using docker-compose for a Rails setup. To sync the files, I've mounted the directory like (some of the code is omitted):
app:
build: .
command: rails server -p 3000 -b '0.0.0.0'
volumes:
- .:/app
However, when running the app, I don't want the folder, tmp, to be synced. Adding the folder to dockerignore only solves the problem when building the docker image. How can I ignore the tmp folder from being synced between the host and guest when running docker compose?
What I ended up doing was to simply map all the folders which I wanted to sync:
Which seems to solve the problem
You can use a data volume to store
tmp
, as data volumes copy in the data from the built docker image before the app directory is mountedYou can add a second volume to a sub-path. It will override the contents of the existing volume. Like so :
This will effectively make
/app/tmp
show the contents of./empty-tmp
on the host system. Instead of showing the contents of./tmp