diff --git a/src/cartservice/Dockerfile b/src/cartservice/Dockerfile
index ad2b1c3..361fd9d 100644
--- a/src/cartservice/Dockerfile
+++ b/src/cartservice/Dockerfile
@@ -1,28 +1,35 @@
-FROM microsoft/dotnet:2.1-sdk-alpine as builder
+FROM gcr.io/dotnet-debugger/aspnetcore:2.1 as builder
+ENV d = 1
WORKDIR /app
COPY . .
RUN dotnet restore && \
dotnet build && \
- dotnet publish -c release -r linux-musl-x64 -o /cartservice
+ dotnet publish -c debug -o /cartservice
# cartservice
-FROM alpine:3.8
+FROM gcr.io/dotnet-debugger/aspnetcore:2.1
+
+# Dependencies for runtime
+# busybox-extras => telnet
+RUN apt-get install -q -y --no-install-recommends \
+ busybox \
+ libc6 \
+ libunwind-dev \
+ libuuid1 \
+ libgcc1 \
+ icu-devtools \
+ musl-dev \
+ wget
RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \
wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \
chmod +x /bin/grpc_health_probe
-# Dependencies for runtime
-# busybox-extras => telnet
-RUN apk add --no-cache \
- busybox-extras \
- libc6-compat \
- libunwind \
- libuuid \
- libgcc \
- libstdc++ \
- libintl \
- icu
WORKDIR /app
COPY --from=builder /cartservice .
-ENTRYPOINT ["./cartservice", "start"]
+COPY ./source-context.json /usr/share/dotnet-debugger/agent
+
+ENV STACKDRIVER_DEBUGGER_MODULE=cartservice
+ENV STACKDRIVER_DEBUGGER_VERSION=1.0.0
+
+ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "cartservice.dll", "start"]
diff --git a/src/cartservice/cartservice.csproj b/src/cartservice/cartservice.csproj
index 3fea4a1..1a0ad06 100644
--- a/src/cartservice/cartservice.csproj
+++ b/src/cartservice/cartservice.csproj
@@ -3,6 +3,7 @@
Exe
netcoreapp2.1
+ portable
diff --git a/src/cartservice/source-context.json b/src/cartservice/source-context.json
new file mode 100644
index 0000000..4b8216b
--- /dev/null
+++ b/src/cartservice/source-context.json
@@ -0,0 +1,6 @@
+{
+ "git": {
+ "revisionId": "1fe7f8dcec94e4c90a2ce8c3c9652eb38152bb46",
+ "url": "git@github.com:hrasadi/microservices-demo.git"
+ }
+}
\ No newline at end of file
diff --git a/src/emailservice/Dockerfile b/src/emailservice/Dockerfile
index 7aa7ec1..40427d3 100644
--- a/src/emailservice/Dockerfile
+++ b/src/emailservice/Dockerfile
@@ -1,45 +1,45 @@
-FROM python:3-alpine as base
-
-FROM base as builder
+FROM debian:stretch as base
+ENV d = 1
# gRPC and app deps
-RUN apk add --update --no-cache \
- gcc \
- linux-headers \
- make \
- musl-dev \
- python-dev \
- g++ \
- # App Deps
- cairo-dev \
- cairo \
- openssl-dev \
- gobject-introspection-dev
+RUN apt-get update
+
+RUN apt-get install -q -y --no-install-recommends \
+ git cmake curl \
+ python-dev python-setuptools python-pip \
+ build-essential zlib1g-dev libbz2-dev \
+ libreadline-dev libsqlite3-dev wget curl \
+ llvm libncurses5-dev libncursesw5-dev \
+ xz-utils tk-dev libffi-dev \
+ libssl-dev musl-dev libgirepository1.0-dev libcairo-dev
+
+# Python
+ENV PYENV_SHA256 df9449f69918c716e688d4216eb4398d2cd6d2dcd0f7e6f56d55d19d74cc57cc
+RUN curl -L https://github.com/pyenv/pyenv/archive/v1.2.6.tar.gz -o pyenv.tar.gz
+RUN echo $PYENV_SHA256 pyenv.tar.gz | sha256sum -c
+RUN tar zxvf pyenv.tar.gz
+RUN mv pyenv-* pyenv
+RUN pyenv/plugins/python-build/install.sh
+RUN python-build 3.7.0 /usr/local/
+RUN rm /usr/local/bin/python
# get packages
+RUN pip install --upgrade pip
COPY requirements.txt .
RUN pip install -r requirements.txt
-FROM base as final
-
-# Enable unbuffered logging
-ENV PYTHONUNBUFFERED=1
-
# Download the grpc health probe
RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \
wget -qO/bin/grpc_health_probe https://github.com/grpc-ecosystem/grpc-health-probe/releases/download/${GRPC_HEALTH_PROBE_VERSION}/grpc_health_probe-linux-amd64 && \
chmod +x /bin/grpc_health_probe
+# Enable unbuffered logging
+ENV PYTHONUNBUFFERED=1
+
WORKDIR /email_server
-# Grab packages from builder
-COPY --from=builder /usr/local/lib/python3.7/ /usr/local/lib/python3.7/
-
-# Need libstdc++ for grpc
-RUN apk add --no-cache libstdc++
-
# Add the application
COPY . .
EXPOSE 8080
-ENTRYPOINT [ "python", "email_server.py" ]
\ No newline at end of file
+ENTRYPOINT [ "python3", "email_server.py" ]
diff --git a/src/emailservice/email_server.py b/src/emailservice/email_server.py
index 676b70e..50d0da9 100644
--- a/src/emailservice/email_server.py
+++ b/src/emailservice/email_server.py
@@ -23,6 +23,9 @@ import grpc
from jinja2 import Environment, FileSystemLoader, select_autoescape, TemplateError
from google.api_core.exceptions import GoogleAPICallError
+import googleclouddebugger
+import traceback
+
import demo_pb2
import demo_pb2_grpc
from grpc_health.v1 import health_pb2
@@ -33,8 +36,6 @@ from grpc_health.v1 import health_pb2_grpc
# from opencensus.trace.exporters import stackdriver_exporter
# from opencensus.trace.exporters import print_exporter
-# import googleclouddebugger
-
# try:
# sampler = always_on.AlwaysOnSampler()
# exporter = stackdriver_exporter.StackdriverExporter()
@@ -42,14 +43,6 @@ from grpc_health.v1 import health_pb2_grpc
# except:
# tracer_interceptor = server_interceptor.OpenCensusServerInterceptor()
-# try:
-# googleclouddebugger.enable(
-# module='emailserver',
-# version='1.0.0'
-# )
-# except:
-# pass
-
from logger import getJSONLogger
logger = getJSONLogger('emailservice-server')
@@ -145,5 +138,15 @@ def start(dummy_mode):
if __name__ == '__main__':
+ try:
+ googleclouddebugger.enable(
+ module='emailserver',
+ version='1.0.0'
+ )
+ except:
+ logger.error("could not enable debugger")
+ logger.error(traceback.print_exc())
+ pass
+
logger.info('starting the email service in dummy mode.')
start(dummy_mode = True)
diff --git a/src/emailservice/requirements.txt b/src/emailservice/requirements.txt
index 37f6f10..6c57c75 100644
--- a/src/emailservice/requirements.txt
+++ b/src/emailservice/requirements.txt
@@ -12,6 +12,7 @@ google-api-core==1.4.0
google-auth==1.5.1
google-cloud-core==0.28.1
google-cloud-trace==0.19.0
+google-python-cloud-debugger==2.9
googleapis-common-protos==1.5.3
grpc-google-iam-v1==0.11.4
grpcio==1.12.1
diff --git a/src/emailservice/source-context.json b/src/emailservice/source-context.json
new file mode 100644
index 0000000..4b8216b
--- /dev/null
+++ b/src/emailservice/source-context.json
@@ -0,0 +1,6 @@
+{
+ "git": {
+ "revisionId": "1fe7f8dcec94e4c90a2ce8c3c9652eb38152bb46",
+ "url": "git@github.com:hrasadi/microservices-demo.git"
+ }
+}
\ No newline at end of file
diff --git a/src/recommendationservice/source-context.json b/src/recommendationservice/source-context.json
new file mode 100644
index 0000000..4b8216b
--- /dev/null
+++ b/src/recommendationservice/source-context.json
@@ -0,0 +1,6 @@
+{
+ "git": {
+ "revisionId": "1fe7f8dcec94e4c90a2ce8c3c9652eb38152bb46",
+ "url": "git@github.com:hrasadi/microservices-demo.git"
+ }
+}
\ No newline at end of file