diff --git a/Dockerfile b/Dockerfile index 3d8ea35..0f974ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -38,7 +38,12 @@ RUN dpkg -i /libgl1-mesa-dri.deb \ # Create flaresolverr user && useradd --home-dir /app --shell /bin/sh flaresolverr \ && mv /usr/bin/chromedriver chromedriver \ - && chown -R flaresolverr:flaresolverr . + && chown -R flaresolverr:flaresolverr . \ + # Create config dir + && mkdir /config \ + && chown flaresolverr:flaresolverr /config + +VOLUME /config # Install Python dependencies COPY requirements.txt . diff --git a/docker-compose.yml b/docker-compose.yml index be0c4af..4be3082 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,9 +7,12 @@ services: container_name: flaresolverr environment: - LOG_LEVEL=${LOG_LEVEL:-info} + - LOG_FILE=flaresolver.log - LOG_HTML=${LOG_HTML:-false} - CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none} - TZ=Europe/London ports: - "${PORT:-8191}:8191" + volumes: + - /var/lib/flaresolver:/config restart: unless-stopped diff --git a/src/flaresolverr.py b/src/flaresolverr.py index 3596fe1..48e9eab 100644 --- a/src/flaresolverr.py +++ b/src/flaresolverr.py @@ -76,6 +76,7 @@ if __name__ == "__main__": # validate configuration log_level = os.environ.get('LOG_LEVEL', 'info').upper() + log_file = os.environ.get('LOG_FILE', None) log_html = utils.get_config_log_html() headless = utils.get_config_headless() server_host = os.environ.get('HOST', '0.0.0.0') @@ -93,6 +94,15 @@ if __name__ == "__main__": logging.StreamHandler(sys.stdout) ] ) + if log_file: + if not log_file.startswith("/config"): + log_file = "/config/" + log_file + log_file = os.path.realpath(log_file) + log_path = os.path.dirname(log_file) + os.makedirs(log_path, exist_ok=True) + + logging.getLogger().addHandler(logging.FileHandler(log_file)) + # disable warning traces from urllib3 logging.getLogger('urllib3').setLevel(logging.ERROR) logging.getLogger('selenium.webdriver.remote.remote_connection').setLevel(logging.WARNING)