Refactor duplicated Dockerfiles across environments
Currently, there is a separate Dockerfile for each environment, which results in significant code duplication. This setup should be refactored to reduce redundancy — for example, by introducing a shared base Dockerfile or using build arguments to customize environment-specific parts.