core_services: use :push_to_dev target to build and push core service container images
diff --git a/appmanager/BUILD b/appmanager/BUILD
new file mode 100644
index 0000000..9faa2ab
--- /dev/null
+++ b/appmanager/BUILD
@@ -0,0 +1,12 @@
+load("//:bazel_tools/docker.bzl", "docker_image")
+
+# TODO(lekva): figure out how to build py_binary with pip dependencies and
+# migrate off docker_image rule
+docker_image(
+	name = "push_to_dev",
+	registry = "localhost:30500",
+	image = "giolekva/pcloud-app-manager",
+	tag = "latest",
+	dockerfile = "Dockerfile",
+	srcs = glob(["**"], exclude=["Dockerfile"]),
+)
diff --git a/controller/BUILD b/controller/BUILD
new file mode 100644
index 0000000..bfdf0b1
--- /dev/null
+++ b/controller/BUILD
@@ -0,0 +1,12 @@
+load("//:bazel_tools/docker.bzl", "docker_image")
+
+# TODO(lekva): figure out how to build py_binary with pip dependencies and
+# migrate off docker_image rule
+docker_image(
+	name = "push_to_dev",
+	registry = "localhost:30500",
+	image = "giolekva/pcloud-api-server",
+	tag = "latest",
+	dockerfile = "Dockerfile",
+	srcs = glob(["**"], exclude=["Dockerfile"]),
+)
diff --git a/dev/install_core_services.sh b/dev/install_core_services.sh
index c2d9a49..d1515c6 100755
--- a/dev/install_core_services.sh
+++ b/dev/install_core_services.sh
@@ -2,12 +2,11 @@
 
 ROOT="$(dirname -- $(pwd))"
 
-sh $ROOT/apps/dgraph/install.sh
+source $ROOT/apps/dgraph/install.sh
 
 # Knowledge Graph
 cd "$ROOT/controller"
-docker build --tag=localhost:30500/giolekva/pcloud-api-server .
-docker push localhost:30500/giolekva/pcloud-api-server
+bazel run //controller:push_to_dev
 kubectl create namespace pcloud
 helm --namespace=pcloud install init chart \
      --set image.name=localhost:30500/giolekva/pcloud-api-server \
@@ -15,8 +14,7 @@
 
 # Application Manager
 cd "$ROOT/appmanager"
-docker build --tag=localhost:30500/giolekva/pcloud-app-manager .
-docker push localhost:30500/giolekva/pcloud-app-manager
+bazel run //appmanager:push_to_dev
 kubectl create namespace pcloud-app-manager
 helm --namespace=pcloud-app-manager install init chart \
      --set image.name=localhost:30500/giolekva/pcloud-app-manager \
@@ -24,8 +22,7 @@
 
 # Event Processor
 cd "$ROOT/events"
-docker build --tag=localhost:30500/giolekva/pcloud-event-processor .
-docker push localhost:30500/giolekva/pcloud-event-processor
+bazel run //events:push_to_dev
 kubectl create namespace pcloud-event-processor
 helm --namespace=pcloud-event-processor install init chart \
      --set image.name=localhost:30500/giolekva/pcloud-event-processor \
diff --git a/events/BUILD b/events/BUILD
new file mode 100644
index 0000000..a53e460
--- /dev/null
+++ b/events/BUILD
@@ -0,0 +1,12 @@
+load("//:bazel_tools/docker.bzl", "docker_image")
+
+# TODO(lekva): figure out how to build py_binary with pip dependencies and
+# migrate off docker_image rule
+docker_image(
+	name = "push_to_dev",
+	registry = "localhost:30500",
+	image = "giolekva/pcloud-event-processor",
+	tag = "latest",
+	dockerfile = "Dockerfile",
+	srcs = glob(["**"], exclude=["Dockerfile"]),
+)