PromucFlow_constructor/deploy/docker/fs/opt/appsmith
Wyatt Walter 2d21717059
fix: allow running as non-root (#40642)
## Description

Allows the Appsmith container to run as a non-root user, specified at
runtime through either docker-compose or Kubernetes pod security
context. I didn't specify the user in the `Dockerfile` because
environments like OpenShift choose a user at runtime, so it can't be
known at build time.

This needs to be followed by an update to docs and changes in the Helm
chart to finish it off, but that has a separate release cycle and this
needs to go ahead of that.

Ideally we would run as non-root by default, but since there's data
persisted on the filesystem automatically transitioning the default is
impossible without a lot of pain. This moves us in that direction and
enables it in the future if we go down that path.

Required to fix https://github.com/appsmithorg/appsmith/issues/38787

## Automation

/ok-to-test tags=""

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!WARNING]
> Tests have not run on the HEAD
50ba745c5bb7709c60ce5194437f921f1a95c980 yet
> <hr>Thu, 15 May 2025 15:56:31 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added support for user identity emulation when running as a non-root
user, improving compatibility in certain deployment environments.
- Prevented embedded database initialization when running as a non-root
user to ensure proper operation.

- **Chores**
- Installed additional system packages to the base image for enhanced
functionality.
- Optimized image size by consolidating and improving cleanup steps
during the build process.
- Updated base image and refined installation commands for improved
build consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-28 22:19:48 +05:30
..
baseline-ce chore: Add mover script for Mongo to postgres migration (#36458) 2024-09-25 15:22:02 +05:30
postgres fix: Add password based auth for postgres (#37068) 2024-12-06 10:49:27 +05:30
templates chore: move the rts.conf code to shell file (#38859) 2025-01-28 00:22:58 -06:00
auto_heal.sh chore: Fix auto heal script crash if curl times out (#29472) 2023-12-08 15:22:26 +05:30
caddy-reconfigure.mjs chore: add HTTP/3 support (#40064) 2025-04-03 19:39:23 +05:30
diagnostics.sh Add a diagnostic script to assist in the debugging of issues with appsmith implementation (#35640) 2024-08-29 14:06:30 +05:30
entrypoint.sh fix: allow running as non-root (#40642) 2025-05-28 22:19:48 +05:30
generate-infra-details.sh chore: Update incorrect docker tagging and add fargate tag in deployment telemetry (#33472) 2024-05-27 17:16:13 +05:30
healthcheck.sh chore: Health check only backend, caddy and RTS (#32891) 2024-04-25 10:36:13 +05:30
install_docker.sh chore: replaced decommisioned urls with new ones (#27786) 2023-10-05 12:07:18 +05:30
JFR-recording-24-hours.sh chore: JFR 24 hour script with logs file (#36041) 2024-09-13 12:46:54 +05:30
mongodb-fixer.sh chore: Use tlog instead of echo in more places (#34182) 2024-06-11 20:10:33 +05:30
pg-upgrade.sh fix: cleanup stale postgres postmaster.pid (#35171) 2024-07-26 12:52:49 +05:30
pg-utils.sh fix: Server startup issue for external postgres (#38019) 2024-12-06 16:38:12 +05:30
pull_resource.sh
record-heap-dump.sh chore: preStop scripts (#35785) 2024-08-21 11:43:40 +05:30
record-thread-dump.sh chore: preStop scripts (#35785) 2024-08-21 11:43:40 +05:30
run-caddy.sh chore: Switch to vanilla Caddy, when rate limiting is disabled (#33387) 2024-05-24 13:11:56 +05:30
run-java.sh chore: create appsmith schema for postgres (#36591) 2024-09-30 23:42:56 +05:30
run-postgres.sh chore: Add Postgres bin to PATH (#34265) 2024-06-17 12:53:34 +05:30
run-rts.sh chore: Enable source maps for RTS for better error traces (#39099) 2025-02-06 21:55:43 +05:30
run-starting-page-init.sh feat: Caddy (#28081) 2023-12-05 10:47:36 +05:30
run-with-env.sh chore: Use tlog instead of echo in more places (#34182) 2024-06-11 20:10:33 +05:30
start_app.sh
starting-page-init.py feat: add ability to change application logs location (#31926) 2024-03-20 19:45:48 +05:30
thread-profile-start.sh chore: preStop scripts (#35785) 2024-08-21 11:43:40 +05:30
thread-profile-stop.sh chore: Added multiple scripts to trigger profiles (#35546) 2024-08-12 19:29:47 +05:30