64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
import os
|
|
|
|
from docker.client import DockerClient
|
|
from docker.errors import NotFound
|
|
from docker.models.containers import Container
|
|
|
|
CONTAINER_NAME = "uwsgi-nginx-test"
|
|
|
|
|
|
def get_logs(container: Container) -> str:
|
|
logs = container.logs()
|
|
return logs.decode("utf-8")
|
|
|
|
|
|
def get_nginx_config(container: Container) -> str:
|
|
result = container.exec_run(f"/usr/sbin/nginx -T")
|
|
return result.output.decode()
|
|
|
|
|
|
def remove_previous_container(client: DockerClient) -> None:
|
|
try:
|
|
previous = client.containers.get(CONTAINER_NAME)
|
|
previous.stop()
|
|
previous.remove()
|
|
except NotFound:
|
|
return None
|
|
|
|
|
|
def get_response_text1() -> str:
|
|
python_version = os.getenv("PYTHON_VERSION")
|
|
return f"Hello World from a default Nginx uWSGI Python {python_version} app in a Docker container (default)"
|
|
|
|
|
|
def get_response_text2() -> str:
|
|
python_version = os.getenv("PYTHON_VERSION")
|
|
return f"Hello World from Nginx uWSGI Python {python_version} app in a Docker container"
|
|
|
|
|
|
def generate_dockerfile_content_custom_app(name: str) -> str:
|
|
content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
|
|
content += "COPY ./application /application\n"
|
|
content += "COPY ./prestart.sh /app/prestart.sh\n"
|
|
content += "WORKDIR /application\n"
|
|
return content
|
|
|
|
|
|
def generate_dockerfile_content_custom_nginx_app(name: str) -> str:
|
|
content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
|
|
content += "COPY app /app\n"
|
|
return content
|
|
|
|
|
|
def generate_dockerfile_content_simple_app(name: str) -> str:
|
|
content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
|
|
content += "COPY ./app/main.py /app/main.py\n"
|
|
return content
|
|
|
|
|
|
def generate_dockerfile_content_app_with_installs(name: str) -> str:
|
|
content = f"FROM tiangolo/uwsgi-nginx:{name}\n"
|
|
content += "RUN pip install flask\n"
|
|
content += "COPY ./app/main.py /app/main.py\n"
|
|
return content
|