text: Title: docker-compose and gunicorn_conf.py file preparation?
  Body: Hi,
  I want to pass custom settings for Gunicorn and Uvicorn for `workers` settings. I have followed this [file ](https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/622470ec9aedb5da2cd2235bbca3f9e8e6256cdb/docker-images/gunicorn_conf.py#L21) 
  So I have added `gunicorn_conf.py` file in my `/app/` folder. Directory structure is as follows
  ```
  fastapi
        |-app
            |-main.py
            |- gunicorn_conf.py
        |-docker-compose.yml
        |-Dockerfile
  ```
  The content of `gunicorn_conf.py`
  ```
  import json
  import multiprocessing
  import os
  
  workers_per_core_str = os.getenv("WORKERS_PER_CORE", "10")
  max_workers_str = os.getenv("MAX_WORKERS")
  use_max_workers = None
  if max_workers_str:
      use_max_workers = int(max_workers_str)
  web_concurrency_str = os.getenv("WEB_CONCURRENCY", None)
  
  host = os.getenv("HOST", "0.0.0.0")
  port = os.getenv("PORT", "80")
  bind_env = os.getenv("BIND", None)
  use_loglevel = os.getenv("LOG_LEVEL", "info")
  if bind_env:
      use_bind = bind_env
  else:
      use_bind = f"{host}:{port}"
  
  cores = multiprocessing.cpu_count()
  workers_per_core = float(workers_per_core_str)
  default_web_concurrency = workers_per_core * cores
  if web_concurrency_str:
      web_concurrency = int(web_concurrency_str)
      assert web_concurrency > 0
  else:
      web_concurrency = max(int(default_web_concurrency), 2)
      if use_max_workers:
          web_concurrency = min(web_concurrency, use_max_workers)
  accesslog_var = os.getenv("ACCESS_LOG", "-")
  use_accesslog = accesslog_var or None
  errorlog_var = os.getenv("ERROR_LOG", "-")
  use_errorlog = errorlog_var or None
  graceful_timeout_str = os.getenv("GRACEFUL_TIMEOUT", "120")
  timeout_str = os.getenv("TIMEOUT", "120")
  keepalive_str = os.getenv("KEEP_ALIVE", "5")
  
  # Gunicorn config variables
  loglevel = use_loglevel
  workers = web_concurrency
  bind = use_bind
  errorlog = use_errorlog
  worker_tmp_dir = "/dev/shm"
  accesslog = use_accesslog
  graceful_timeout = int(graceful_timeout_str)
  timeout = int(timeout_str)
  keepalive = int(keepalive_str)
  
  
  # For debugging and testing
  log_data = {
      "loglevel": loglevel,
      "workers": workers,
      "bind": bind,
      "graceful_timeout": graceful_timeout,
      "timeout": timeout,
      "keepalive": keepalive,
      "errorlog": errorlog,
      "accesslog": accesslog,
      # Additional, non-gunicorn variables
      "workers_per_core": workers_per_core,
      "use_max_workers": use_max_workers,
      "host": host,
      "port": port,
  }
  print(json.dumps(log_data))
  ```
  
  And content of `docker-compose.yml`
  ```
  version: '3'
  services:
    web:
      build:
        context: .
        
      volumes:
        - ./app:/app
      ports:
        - "80:80"
      #environment:
  
      command: bash -c "uvicorn main:app --reload --host 0.0.0.0 --port 80"
      # Infinite loop, to keep it alive, for debugging
      # command: bash -c "while true; do echo 'sleeping...' && sleep 10; done"
  ```
  
  My server is not picking parameters of `gunicorn_conf.py`. 
  
  Am I missing something here?
  
  
  
  