Skip to content

Update github actions to upload image to dockerhub #19

Update github actions to upload image to dockerhub

Update github actions to upload image to dockerhub #19

Workflow file for this run

on:
push:
branches:
- "master"
paths-ignore:
- '**/README.md'
pull_request:
branches:
- "master"
paths-ignore:
- '**/README.md'
jobs:
test_and_push:
runs-on: ubuntu-latest
steps:
- name: Checkout Code Repository
uses: actions/checkout@v2
- name: Build docker image
run: docker build -t mongo-backup .
- name: Create a mongo container
run: |
docker run --name test-mongo \
-e MONGO_INITDB_ROOT_USERNAME=mongo \
-e MONGO_INITDB_ROOT_PASSWORD=secret \
-d mongo
- name: Run MINIO container
run: |
# Create a directory to initialise default bucket
mkdir -p ~/minio/data/mongodb
MONGO_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' test-mongo)
docker run \
--name minio1 \
-v ~/minio/data:/data \
-e "MINIO_ROOT_USER=AKIAIOSFODNN7EXAMPLE" \
-e "MINIO_ROOT_PASSWORD=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
-d quay.io/minio/minio server /data --console-address ":9001"
- name: Test backup all databases
run: |
sleep 5
MONGO_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' test-mongo)
MINIO_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' minio1)
# Take a backup of all databases by specifying MONGO_COMPLETE=true
docker run --name mongodump \
-e "MONGO_URI=mongodb://mongo:secret@${MONGO_IP}/dbname" \
-e MONGO_COMPLETE=true \
-e AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" \
-e AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
-e AWS_S3_ENDPOINT="http://${MINIO_IP}:9000" \
-e "AWS_DEFAULT_REGION=us-west-1" \
-e "S3_BUCKET=mongodb" \
mongo-backup
- name: Test backup selected admin database
run: |
# Remove existing mongodump container
docker rm -f mongodump
MONGO_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' test-mongo)
MINIO_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' minio1)
# Take backup of admin database only
docker run --name mongodump \
-e "MONGO_URI=mongodb://mongo:secret@${MONGO_IP}/admin" \
-e MONGO_COMPLETE=true \
-e AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" \
-e AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" \
-e AWS_S3_ENDPOINT="http://${MINIO_IP}:9000" \
-e "AWS_DEFAULT_REGION=us-west-1" \
-e "S3_BUCKET=mongodb" \
mongo-backup
- name: Push to Docker Hub
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
docker login -u vikasy -p $DOCKER_PASSWORD
docker tag mongo-backup vikasy/mongodump-s3
docker push vikasy/mongodump-s3