## Description > [!TIP] > _Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team)._ > > _Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR._ Fixes #`Issue Number` _or_ Fixes `Issue URL` > [!WARNING] > _If no issue exists, please create an issue first, and check with the maintainers if the issue is valid._ ## Automation /ok-to-test tags="@tag.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/16343398654> > Commit: f8257de8135f4243309143396eca2a81bdb6f2a3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=16343398654&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 17 Jul 2025 12:14:40 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** * Introduced a new annotation to streamline and secure Git-related operations in application APIs. * Added a robust workflow for handling Git operations with enhanced concurrency control and error handling. * Enabled in-memory Git storage mode for improved performance in certain environments. * Added support for executing Git operations via shell scripts, including branch merging and repository management. * **Improvements** * Enhanced configuration flexibility for Git storage and Redis integration. * Improved error reporting with new, descriptive Git-related error messages. * Broadened environment file ignore patterns for better environment management. * **Bug Fixes** * Improved handling of private key formats for Git authentication. * **Documentation** * Added detailed documentation and flow diagrams for new Git operation workflows. * **Chores** * Updated build and test configurations to align with new Git storage paths. * Deprecated and bypassed certain Redis operations when using in-memory Git storage. * **Tests** * Removed several outdated or redundant test cases related to auto-commit and Git serialization. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
70 lines
2.1 KiB
Docker
70 lines
2.1 KiB
Docker
ARG BASE
|
|
FROM ${BASE}
|
|
|
|
ENV IN_DOCKER=1
|
|
|
|
ARG APPSMITH_CLOUD_SERVICES_BASE_URL
|
|
ENV APPSMITH_CLOUD_SERVICES_BASE_URL=${APPSMITH_CLOUD_SERVICES_BASE_URL}
|
|
|
|
ARG APPSMITH_SEGMENT_CE_KEY
|
|
ENV APPSMITH_SEGMENT_CE_KEY=${APPSMITH_SEGMENT_CE_KEY}
|
|
|
|
COPY deploy/docker/fs /
|
|
|
|
RUN apt-get update && \
|
|
apt-get install -y software-properties-common && \
|
|
add-apt-repository -y ppa:git-core/ppa && \
|
|
apt-get update && \
|
|
apt-get install -y git tar zstd openssh-client && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN <<END
|
|
if ! [ -f info.json ]; then
|
|
echo "Missing info.json" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! [ -f server/mongo/server.jar -a -f server/pg/server.jar ]; then
|
|
echo "Missing one or both server.jar files in the right place. Are you using the build script?" >&2
|
|
exit 1
|
|
fi
|
|
END
|
|
|
|
# Add client UI - Application Layer
|
|
COPY ./app/client/build editor/
|
|
|
|
# Add RTS - Application Layer
|
|
COPY ./app/client/packages/rts/dist rts/
|
|
|
|
# Create the git-storage directory with group writeable permissions so non-root users can write to it.
|
|
RUN mkdir --mode 775 "/dev/shm/git-storage"
|
|
|
|
ENV PATH /opt/bin:/opt/java/bin:/opt/node/bin:$PATH
|
|
|
|
RUN <<END
|
|
set -o errexit
|
|
|
|
# Make all `*.sh` files executable, excluding `node_modules`.
|
|
find . \( -name node_modules -prune \) -o \( -type f -name '*.sh' \) -exec chmod +x '{}' +
|
|
|
|
# Ensure all custom command-scripts have executable permission
|
|
chmod +x /opt/bin/* /watchtower-hooks/*.sh
|
|
|
|
# Disable setuid/setgid bits for the files inside container.
|
|
find / \( -path /proc -prune \) -o \( \( -perm -2000 -o -perm -4000 \) -exec chmod -s '{}' + \) || true
|
|
|
|
mkdir -p /.mongodb/mongosh /appsmith-stacks
|
|
chmod ugo+w /etc /appsmith-stacks
|
|
chmod -R ugo+w /var/run /.mongodb /etc/ssl /usr/local/share
|
|
END
|
|
|
|
LABEL com.centurylinklabs.watchtower.lifecycle.pre-check=/watchtower-hooks/pre-check.sh
|
|
LABEL com.centurylinklabs.watchtower.lifecycle.pre-update=/watchtower-hooks/pre-update.sh
|
|
|
|
EXPOSE 80
|
|
EXPOSE 443
|
|
ENTRYPOINT [ "/opt/appsmith/entrypoint.sh" ]
|
|
HEALTHCHECK --interval=15s --timeout=15s --start-period=45s CMD "/opt/appsmith/healthcheck.sh"
|
|
CMD ["/usr/bin/supervisord", "-n"]
|