Here's a shell script I previously wrote to back up an ArangoDB database.
adb-backup.sh
#!/bin/bash
# exit script if any statement returns non-true return value
set -e
DATE=$(date +%F)
DATABASE_NAME=auth
BACKUP_DIR_NAME="arangodb_${DATABASE_NAME}_`date +"%m_%d_%Y"`"
BACKUP_FILE="$BACKUP_DIR_NAME.tar.gz"
ENDPOINT="ssl://$ARANGODB_SERVICE_HOST"
# Clean up
rm -rf /tmp/arangodb_*
# Export the data from arangodb
arangodump \
--output-directory /tmp/$BACKUP_DIR_NAME \
--server.endpoint $ENDPOINT \
--server.database $DATABASE_NAME \
--server.username george \
--server.password costanza \
--include-system-collections true
# Create tar file
tar -zcf /tmp/$BACKUP_FILE /tmp/$BACKUP_DIR_NAME
# Make bucket for backup
# mc mb ericdev/arangodb
# Copy to storage
mc cp /tmp/$BACKUP_FILE "ericdev/arangodb/${BACKUP_DIR_NAME}/${BACKUP_FILE}"
# Clean up
rm -rf /tmp/arangodb_*
echo "ArangoDB backup completed"
exit 0
And the corresponding Dockerfile:
FROM arangodb/arangodb:3.6.4
RUN apt update && apt install wget
RUN wget https://dl.min.io/client/mc/release/linux-amd64/mc \
&& chmod +x mc
ENV DATABASE_NAME annotation
ENV ARANGO_SERVICE_HOST localhost
ENV ARANGO_SERVICE_PORT 8529
ENV DATABASE_USERNAME root
ADD adb-backup.sh /adb-backup.sh
ENTRYPOINT ["sh", "/adb-backup.sh"]
Here's a shell script I previously wrote to back up an ArangoDB database.
adb-backup.sh
And the corresponding Dockerfile: