# Check if the environment variable to update code from git is set to true if [ "$UPDATE_CODE_FROM_GIT" = "true" ]; then # Install necessary packages apk add git nano rsync echo "Updating code from git.d-popov.com...(as '$GIT_USERNAME')" # Remove the previous clone directory to ensure a fresh start rm -rf /tmp/clone mkdir /tmp/clone # Clone the specific branch of the new repository git clone -b ${GIT_BRANCH:-main} --depth 1 https://$GIT_USERNAME:${GIT_PASSWORD//@/%40}@git.d-popov.com/popov/mwitnessing.git /tmp/clone || exit 1 # Fetch the latest commit ID and message from the cloned repository GIT_COMMIT_ID=$(git -C /tmp/clone rev-parse HEAD) LAST_COMMIT_MESSAGE=$(git -C /tmp/clone log -1 --pretty=%B) echo "Current Git Commit: $LAST_COMMIT_MESSAGE: $GIT_COMMIT_ID" export GIT_COMMIT_ID # Use rsync to synchronize the files to /app, including deletion of files not in the source rsync -av --delete --exclude '/public/content' /tmp/clone/ /app/ || echo "Rsync failed: Issue synchronizing files" # Copy .env files rsync -av /tmp/clone/.env* /app/ || echo "Rsync failed: Issue copying .env files" # Copy the entrypoint.sh if exists in the new structure [ -f /tmp/clone/entrypoint.sh ] && rsync -av /tmp/clone/entrypoint.sh /app/entrypoint.sh || echo "Rsync failed: Issue copying entrypoint.sh" chmod +x /app/entrypoint.sh # Clean up the temporary clone directory rm -rf /tmp/clone cd /app echo "Installing packages in /app" npm install --no-audit --no-fund --no-optional --omit=optional yes | npx prisma generate # Uncomment the next line if database migrations are necessary # npx prisma migrate deploy echo "Done cloning. Current Git Commit ID: $GIT_COMMIT_ID" # Uncomment the following lines for production deployment # npx next build # npx next start fi echo "Running the main process" exec "$@"