diff options
-rw-r--r-- | template/docker-compose.yaml.template | 3 | ||||
-rwxr-xr-x | tool/modules/nginx.py | 6 | ||||
-rw-r--r-- | tool/modules/path.py | 3 |
3 files changed, 8 insertions, 4 deletions
diff --git a/template/docker-compose.yaml.template b/template/docker-compose.yaml.template index 35027c9..d8e1b85 100644 --- a/template/docker-compose.yaml.template +++ b/template/docker-compose.yaml.template @@ -54,12 +54,15 @@ services: nginx: image: nginx:latest container_name: nginx + restart: on-failure:3 ports: - "80:80" - "443:443" volumes: - "./nginx-config:/etc/nginx/conf.d:ro" + - "./site:/srv/www:ro" - "./data/certbot/certs:/etc/letsencrypt:ro" + - "./data/certbot/webroot:/srv/acme:ro" networks: - external - internal diff --git a/tool/modules/nginx.py b/tool/modules/nginx.py index 62d4044..c6e0a71 100755 --- a/tool/modules/nginx.py +++ b/tool/modules/nginx.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 from .template import Template -from .path import nginx_template_dir +from .path import project_abs_path, nginx_template_dir import json import jsonschema import os @@ -63,8 +63,8 @@ def certbot_command_gen(domain: str, action, test=False) -> str: domains = list_domains(domain) if action == 'create': # create with standalone mode - return f'docker run -it --name certbot -v "./data/certbot/certs:/etc/letsencrypt" -v "./data/certbot/data:/var/lib/letsencrypt" certbot/certbot certonly --standalone -d {" -d ".join(domains)}{ " --test-cert" if test else "" }' + return f'docker run -it --rm --name certbot -v "{project_abs_path}/data/certbot/certs:/etc/letsencrypt" -v "{project_abs_path}/data/certbot/data:/var/lib/letsencrypt" certbot/certbot certonly --standalone -d {" -d ".join(domains)}{ " --test-cert" if test else "" }' elif action == 'renew': # renew with webroot mode - return f'docker run -it --name certbot -v "./data/certbot/certs:/etc/letsencrypt" -v "./data/certbot/data:/var/lib/letsencrypt" -v "./data/certbot/webroot:/var/www/certbot" certbot/certbot renew --webroot -w /var/www/certbot' + return f'docker run -it --rm --name certbot -v "{project_abs_path}/data/certbot/certs:/etc/letsencrypt" -v "{project_abs_path}/data/certbot/data:/var/lib/letsencrypt" -v "{project_abs_path}/data/certbot/webroot:/var/www/certbot" certbot/certbot renew --webroot -w /var/www/certbot' raise ValueError('Invalid action') diff --git a/tool/modules/path.py b/tool/modules/path.py index 94adc27..24df27a 100644 --- a/tool/modules/path.py +++ b/tool/modules/path.py @@ -2,6 +2,7 @@ import os.path script_dir = os.path.relpath(os.path.dirname(__file__)) project_dir = os.path.normpath(os.path.join(script_dir, "../../")) +project_abs_path = os.path.abspath(project_dir) template_dir = os.path.join(project_dir, "template") nginx_template_dir = os.path.join(template_dir, "nginx") data_dir = os.path.join(project_dir, "data") @@ -9,5 +10,5 @@ tool_dir = os.path.join(project_dir, "tool") config_file_path = os.path.join(data_dir, "config") nginx_config_dir = os.path.join(project_dir, "nginx-config") -__all__ = ["script_dir", "project_dir", "template_dir", +__all__ = ["script_dir", "project_dir", "project_abs_path", "template_dir", "nginx_template_dir", "data_dir", "config_file_path", "tool_dir", "nginx_config_dir"] |