diff --git a/Dockerfile b/Dockerfile index b86912fc1b..d3bea1be0a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,10 +10,13 @@ ENV LANG C.UTF-8 ENV LC_ALL C.UTF-8 # Update APT packages - Base Layer -RUN apt-get update && apt-get install --no-install-recommends -y \ +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ supervisor curl cron certbot nginx gnupg wget \ software-properties-common gettext openjdk-11-jre \ + python3-pip python-setuptools git \ && add-apt-repository ppa:redislabs/redis \ + && pip install --no-cache-dir git+https://github.com/coderanger/supervisor-stdout@973ba19967cdaf46d9c1634d1675fc65b9574f6e \ + && apt-get remove -y git python3-pip \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* diff --git a/deploy/docker/entrypoint.sh b/deploy/docker/entrypoint.sh index 5b5f8f8b60..f2446ce84e 100755 --- a/deploy/docker/entrypoint.sh +++ b/deploy/docker/entrypoint.sh @@ -198,5 +198,8 @@ configure_supervisord # Ensure the restore path exists in the container, so an archive can be copied to it, if need be. mkdir -p /appsmith-stacks/data/{backup,restore} +# Create sub-directory to store services log in the container mounting folder +mkdir -p /appsmith-stacks/logs/{backend,cron,editor,rts,mongodb,redis} + # Handle CMD command exec "$@" diff --git a/deploy/docker/templates/supervisord.conf b/deploy/docker/templates/supervisord.conf index ede3038a30..d027f74aa9 100644 --- a/deploy/docker/templates/supervisord.conf +++ b/deploy/docker/templates/supervisord.conf @@ -33,3 +33,12 @@ serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket [include] files = /etc/supervisor/conf.d/*.conf + +; This event listener is used to capture processes log +; and forward to container log using supervisor_stdout +; Ref: https://github.com/coderanger/supervisor-stdout +[eventlistener:stdout] +command = supervisor_stdout +buffer_size = 100 +events = PROCESS_LOG +result_handler = supervisor_stdout:event_handler \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/application_process/backend.conf b/deploy/docker/templates/supervisord/application_process/backend.conf index 4686b423c9..ecb18f7945 100644 --- a/deploy/docker/templates/supervisord/application_process/backend.conf +++ b/deploy/docker/templates/supervisord/application_process/backend.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=10 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/application_process/cron.conf b/deploy/docker/templates/supervisord/application_process/cron.conf index 88a228da29..16b24e79a3 100644 --- a/deploy/docker/templates/supervisord/application_process/cron.conf +++ b/deploy/docker/templates/supervisord/application_process/cron.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=0 startretries=3 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr -stdout_logfile_maxbytes=0 -stderr_logfile_maxbytes=0 \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/application_process/editor.conf b/deploy/docker/templates/supervisord/application_process/editor.conf index 9ef1a38b45..f66e8ebb00 100644 --- a/deploy/docker/templates/supervisord/application_process/editor.conf +++ b/deploy/docker/templates/supervisord/application_process/editor.conf @@ -5,8 +5,12 @@ autostart=true autorestart=true startsecs=0 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true stopsignal=QUIT \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/application_process/rts.conf b/deploy/docker/templates/supervisord/application_process/rts.conf index 00d8fc1363..b0964c1eb1 100644 --- a/deploy/docker/templates/supervisord/application_process/rts.conf +++ b/deploy/docker/templates/supervisord/application_process/rts.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=0 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/mongodb.conf b/deploy/docker/templates/supervisord/mongodb.conf index 4ff70d2cc8..d54ee43f0b 100644 --- a/deploy/docker/templates/supervisord/mongodb.conf +++ b/deploy/docker/templates/supervisord/mongodb.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=10 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file diff --git a/deploy/docker/templates/supervisord/redis.conf b/deploy/docker/templates/supervisord/redis.conf index 7f2a6f1593..ed6c6dfac4 100644 --- a/deploy/docker/templates/supervisord/redis.conf +++ b/deploy/docker/templates/supervisord/redis.conf @@ -6,7 +6,11 @@ autostart=true autorestart=true startsecs=0 startretries=3 -stdout_logfile_maxbytes = 0 -stderr_logfile_maxbytes = 0 -stdout_logfile=/dev/stdout -stderr_logfile=/dev/stderr \ No newline at end of file +stdout_logfile=/appsmith-stacks/logs/%(program_name)s/%(program_name)s.log +redirect_stderr=true +stdout_logfile_maxbytes=10MB +stderr_logfile_maxbytes=10MB +stdout_logfile_backups=5 +stderr_logfile_backups=5 +stdout_events_enabled=true +stderr_events_enabled=true \ No newline at end of file