В одном из моих проектов получилась такая ситуация:
У меня есть папка media/folder1/ содержащая файлы различные служебные и пользовательские папки. В ней есть папка media/folder1/folder_for_nginx/, в которой содержаться файлы которые надо отдавать пользователю напрямую через nginx.
Я добавил в репозиторий в папку media папку folder1 и в неё папку folder_for_nginx, в каждой из них лежит файл .gitignore с содержимым:
# Ignore everything in this directory
*
# Except this file
!.gitignore
Чтобы всё что добавляется в эти папки локально не шло в репозиторий во время push.
Так же были настроены docker-compose и nginx:
docker-compose.yml:
project_stage:
...
volumes:
- ./folder_for_nginx:/usr/src/api/media/folder1/folder_for_nginx
...
nginx_stage:
...
volumes:
- ./folder_for_nginx:/usr/src/folder_for_nginx
...
И настройки для nginx:
default.conf:
...
server {
...
location /files/ {
alias /usr/src/folder_for_nginx/;
autoindex off;
}
...
В итоге получилось:
- папка folder_for_nginx на хосте оказалась в корне проекта (для конфига docker-compose базовой является папка api в корне проекта)
А всё содержимое папки folder1 удаляется при каждом обновлении кода сервера.
Как это пофиксить, чтобы и папка была на своём месте, и nginx к ней имел доступ и файлы не удалялись?