Skip to content

Run as non-root user #186

Description

@CaptainScully

I would like to run docker-drawio as a non-root user for security, same as #36, which was marked as completed. In my compose file, I set the user option to a non-root UID and GID, but get several permission errors in the docker-compose log. The container runs, but its webpage is not accessible. Removing the user option so it runs as root makes it work fine.

Is there anything else I need to do to run as a non-root user? Many thanks!

Running jgraph/drawio:27.0.5

drawio  | /docker-entrypoint.sh: line 16: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | Init PreConfig.js
drawio  | /docker-entrypoint.sh: line 17: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 18: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 20: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 24: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 25: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 26: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 27: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 28: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 31: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 32: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 46: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 47: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | Updating Tomcat context path to ''
drawio  | Permission denied: conf/server.xml
drawio  | Permission denied: conf/server.xml
drawio  | /docker-entrypoint.sh: line 62: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 64: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 65: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 67: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 69: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 72: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 73: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 74: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 78: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 96: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 110: /usr/local/tomcat/webapps/draw/js/PreConfig.js: Permission denied
drawio  | /**
drawio  |  * Copyright (c) 2006-2024, JGraph Ltd
drawio  |  * Copyright (c) 2006-2024, draw.io AG
drawio  |  */
drawio  | // Overrides of global vars need to be pre-loaded
drawio  | window.DRAWIO_PUBLIC_BUILD = true;
drawio  | window.EXPORT_URL = 'REPLACE_WITH_YOUR_IMAGE_SERVER';
drawio  | window.PLANT_URL = 'REPLACE_WITH_YOUR_PLANTUML_SERVER';
drawio  | window.DRAWIO_BASE_URL = null; // Replace with path to base of deployment, e.g. https://www.example.com/folder
drawio  | window.DRAWIO_VIEWER_URL = null; // Replace your path to the viewer js, e.g. https://www.example.com/js/viewer.min.js
drawio  | window.DRAWIO_LIGHTBOX_URL = null; // Replace with your lightbox URL, eg. https://www.example.com
drawio  | window.DRAW_MATH_URL = 'math/es5';
drawio  | window.DRAWIO_CONFIG = null; // Replace with your custom draw.io configurations. For more details, https://www.drawio.com/doc/faq/configure-diagram-editor
drawio  | urlParams['sync'] = 'manual';
drawio  | Init PostConfig.js
drawio  | /docker-entrypoint.sh: line 127: /usr/local/tomcat/webapps/draw/js/PostConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 128: /usr/local/tomcat/webapps/draw/js/PostConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 129: /usr/local/tomcat/webapps/draw/js/PostConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 133: /usr/local/tomcat/webapps/draw/js/PostConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 140: /usr/local/tomcat/webapps/draw/js/PostConfig.js: Permission denied
drawio  | /docker-entrypoint.sh: line 144: /usr/local/tomcat/webapps/draw/js/PostConfig.js: Permission denied

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions