1
0

utils.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import os
  2. from docker.client import DockerClient
  3. from docker.errors import NotFound
  4. from docker.models.containers import Container
  5. CONTAINER_NAME = "uwsgi-nginx-test"
  6. def get_logs(container: Container) -> str:
  7. logs = container.logs()
  8. return logs.decode("utf-8")
  9. def get_nginx_config(container: Container) -> str:
  10. result = container.exec_run(f"/usr/sbin/nginx -T")
  11. return result.output.decode()
  12. def remove_previous_container(client: DockerClient) -> None:
  13. try:
  14. previous = client.containers.get(CONTAINER_NAME)
  15. previous.stop()
  16. previous.remove()
  17. except NotFound:
  18. return None
  19. def get_response_text1() -> str:
  20. python_version = os.getenv("PYTHON_VERSION")
  21. return f"Hello World from a default Nginx uWSGI Python {python_version} app in a Docker container (default)"
  22. def get_response_text2() -> str:
  23. python_version = os.getenv("PYTHON_VERSION")
  24. return f"Hello World from Nginx uWSGI Python {python_version} app in a Docker container"
  25. def generate_dockerfile_content_custom_app(name: str) -> str:
  26. content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
  27. content += "COPY ./application /application\n"
  28. content += "COPY ./prestart.sh /app/prestart.sh\n"
  29. content += "WORKDIR /application\n"
  30. return content
  31. def generate_dockerfile_content_custom_nginx_app(name: str) -> str:
  32. content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
  33. content += "COPY app /app\n"
  34. return content
  35. def generate_dockerfile_content_simple_app(name: str) -> str:
  36. content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
  37. content += "COPY ./app/main.py /app/main.py\n"
  38. return content
  39. def generate_dockerfile_content_app_with_installs(name: str) -> str:
  40. content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
  41. content += "RUN pip install flask\n"
  42. content += "COPY ./app/main.py /app/main.py\n"
  43. return content