It’s not a first time to face any gotchas while building Docker images, especially when dealing with symlinks, mount volumes, permissions, etcetera. So, here are few things to check when dealing with
/etc/nginx/sites-enabled directory cannot be found.
#1. Make sure that
sites-enabled exists in your directory as a symlink or not, it doesn’t really matter much.
#2. Double-check your Dockerfile or docker-compose.yml file that you got the right volume mapping. For instance, in Dockerfile you should have something like this:
COPY nginx-configs/ /etc/nginx/sites-enabled/
#3. Clear any docker build cache:
docker system prune and rebuild your image.
#4. If by any chance you are running a Windows machine, and you are trying to mount symlinks (having sites-enabled as a symlink to sites-available directory), you’ll probably have the files there, so the issue most likely will come from the symlink path, the backslashes (
\) if you will. So, either copy the nginx configs to your default
/etc/nginx/conf.d directory, or if you need to preserve the directory structure, better get rid of the symlinks and have duplicate files in both sites-available and sites-enabled which is not a good, optimal solution. I mean you could just use the sites-available directory in your
nginx.conf file instead of sites-enabled but what’s the point, right?! At last, just buy yourself a Linux or a MacBook Pro workstation :)
In case you face any issues, feel free to leave a comment below and if you find this tutorial useful, follow our official channel on Telegram.