Skip to content

Instantly share code, notes, and snippets.

@TiagoGouvea
Last active May 2, 2020 14:38
Show Gist options
  • Select an option

  • Save TiagoGouvea/d5dbb7b2d41bcc1b0d8741d22bacb0b2 to your computer and use it in GitHub Desktop.

Select an option

Save TiagoGouvea/d5dbb7b2d41bcc1b0d8741d22bacb0b2 to your computer and use it in GitHub Desktop.

Revisions

  1. TiagoGouvea revised this gist May 2, 2020. 1 changed file with 8 additions and 9 deletions.
    17 changes: 8 additions & 9 deletions build-push-update.sh
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    #!/usr/bin/env bash
    echo -e "\nDeploy remote instance"

    echo -e "\n# 1/X - Loading and setting options..."
    echo -e "\n# 1/4 - Loading and setting options..."
    ## Show commands (if you want to check, uncomment it)
    #set -x

    @@ -15,19 +15,18 @@ source config.sh
    gcloud config set project ${PROJECT}
    gcloud config set compute/zone ${ZONE}

    echo -e "\n# 2/X - Building (and tagging) docker image..."
    # Build and push backend
    # Build and tag backend
    echo -e "\n# 2/4 - Building (and tagging) docker image..."
    cd ../backend/
    docker build -f Dockerfile -t ${IMAGE_TAG} .
    docker tag ${IMAGE_TAG} ${CONTAINER_IMAGE}

    echo -e "\n# 3/X - Pushing image to Google Container Registry..."
    # Push image
    echo -e "\n# 3/4 - Pushing image to Google Container Registry..."
    docker push ${CONTAINER_IMAGE}

    echo -e "\n# 4/X - Updating remote config files..."
    cd ../deployment/

    echo -e "\n# 4/X - Pulling and starting remote container..."
    gcloud beta compute --project ${PROJECT} ssh ${INSTANCE_NAME} --zone ${ZONE} --command="cd ${REMOTE_PATH} && docker stop \$(docker ps -aq) && docker rm \$(docker ps -aq) && docker run -d -p 80:8080 --name=${IMAGE_TAG} ${CONTAINER_IMAGE} "
    # Update remote instance
    echo -e "\n# 4/4 - Pulling and starting remote container..."
    gcloud beta compute --project ${PROJECT} ssh ${INSTANCE_NAME} --zone ${ZONE} --command="cd ${REMOTE_PATH} && docker stop \$(docker ps -aq) || true && docker rm \$(docker ps -aq) || true && docker run -d -p 80:8080 --name=${IMAGE_TAG} ${CONTAINER_IMAGE} "

    echo -e "\nInstance updated!"
  2. TiagoGouvea revised this gist May 1, 2020. 1 changed file with 1 addition and 6 deletions.
    7 changes: 1 addition & 6 deletions build-push-update.sh
    Original file line number Diff line number Diff line change
    @@ -28,11 +28,6 @@ echo -e "\n# 4/X - Updating remote config files..."
    cd ../deployment/

    echo -e "\n# 4/X - Pulling and starting remote container..."
    if [[ ${DETACHED} == "1" ]]; then
    DETACHED="-d"
    else
    DETACHED=""
    fi
    gcloud beta compute --project ${PROJECT} ssh ${INSTANCE_NAME} --zone ${ZONE} --command="cd ${REMOTE_PATH} && docker stop \$(docker ps -aq) && docker rm \$(docker ps -aq) && docker run -p 80:8080 --name=${IMAGE_TAG} ${DETACHED} ${CONTAINER_IMAGE} "
    gcloud beta compute --project ${PROJECT} ssh ${INSTANCE_NAME} --zone ${ZONE} --command="cd ${REMOTE_PATH} && docker stop \$(docker ps -aq) && docker rm \$(docker ps -aq) && docker run -d -p 80:8080 --name=${IMAGE_TAG} ${CONTAINER_IMAGE} "

    echo -e "\nInstance updated!"
  3. TiagoGouvea created this gist May 1, 2020.
    38 changes: 38 additions & 0 deletions build-push-update.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    #!/usr/bin/env bash
    echo -e "\nDeploy remote instance"

    echo -e "\n# 1/X - Loading and setting options..."
    ## Show commands (if you want to check, uncomment it)
    #set -x

    ## Stop on errors
    set -e

    ## Include config
    source config.sh

    ## Set GCP compute zone
    gcloud config set project ${PROJECT}
    gcloud config set compute/zone ${ZONE}

    echo -e "\n# 2/X - Building (and tagging) docker image..."
    # Build and push backend
    cd ../backend/
    docker build -f Dockerfile -t ${IMAGE_TAG} .
    docker tag ${IMAGE_TAG} ${CONTAINER_IMAGE}

    echo -e "\n# 3/X - Pushing image to Google Container Registry..."
    docker push ${CONTAINER_IMAGE}

    echo -e "\n# 4/X - Updating remote config files..."
    cd ../deployment/

    echo -e "\n# 4/X - Pulling and starting remote container..."
    if [[ ${DETACHED} == "1" ]]; then
    DETACHED="-d"
    else
    DETACHED=""
    fi
    gcloud beta compute --project ${PROJECT} ssh ${INSTANCE_NAME} --zone ${ZONE} --command="cd ${REMOTE_PATH} && docker stop \$(docker ps -aq) && docker rm \$(docker ps -aq) && docker run -p 80:8080 --name=${IMAGE_TAG} ${DETACHED} ${CONTAINER_IMAGE} "

    echo -e "\nInstance updated!"