input: Write a python function to create a docker image and push it to GCP, and also to provision a compute instance.
  assert create_and_push_docker_image() == "Docker image created and pushed successfully"
  assert provision_compute_instance() == "Compute instance provisioned successfully"
output: def create_and_push_docker_image():
      import subprocess
      
      try:
          # Build the Docker image
          subprocess.run(["docker", "build", "-t", "gcr.io/my-project/my-image:latest", "."], check=True)
          
          # Push the Docker image to Google Container Registry
          subprocess.run(["docker", "push", "gcr.io/my-project/my-image:latest"], check=True)
          
          return "Docker image created and pushed successfully"
      except subprocess.CalledProcessError as e:
          return f"Failed to create and push Docker image: {str(e)}"
  
  def provision_compute_instance():
      import subprocess
      
      try:
          # Create a compute instance using gcloud command
          subprocess.run([
              "gcloud", "compute", "instances", "create", "my-instance",
              "--zone=us-central1-a",
              "--machine-type=e2-medium",
              "--image-family=debian-10",
              "--image-project=debian-cloud"
          ], check=True)
          
          return "Compute instance provisioned successfully"
      except subprocess.CalledProcessError as e:
          return f"Failed to provision compute instance: {str(e)}"