How to recreate a google compute engine vm from one project in another project?

Since I cannot turn off the source VM because it is currently in use in a production environment, I have to use the following steps to create a mirror VM in another project:

1) Create a snapshot of the boot disk of the source VM

2) Create a disk based on this snapshot in the target project

 gcloud compute disks create vm-prod-disk --source-snapshot \
 https://www.googleapis.com/compute/v1/projects/<source-\
 project>/global/snapshots/<source-vm-snapshot> --project target-project

3) Create a VM based on the new disk from step 2

gcloud compute instances create vm-prod-duplicate \
--project target-project --disk name=vm-prod-disk,boot=yes

You first have to create an image in your old-project

gcloud compute images create "my-image" --source-disk "my-disk"

Now, you can create a machine in another project with it, since images are global resources:

gcloud compute instances create "my-instance" \
    --image "my-image" \
    --image-project "new-project"

There are also other solutions.