aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Tim Emiola <tbetbetbe@users.noreply.github.com>2015-01-28 17:27:55 -0800
committerGravatar Tim Emiola <tbetbetbe@users.noreply.github.com>2015-01-28 17:27:55 -0800
commit7a87930863d19655f335cecc59a995bfce0f0eba (patch)
treecb44d8652ab1644b821c0d032d376c1e2471abae /tools
parent163a2d540ce18bcc0df757dcc789c8ee214e34d4 (diff)
parent47fd137e80fe7a85764245f6d255079ef301eeea (diff)
Merge pull request #272 from murgatroid99/node_dockerfile
Added docker files for node interop tests
Diffstat (limited to 'tools')
-rw-r--r--tools/dockerfile/grpc_node/Dockerfile14
-rw-r--r--tools/dockerfile/grpc_node_base/Dockerfile22
-rwxr-xr-xtools/gce_setup/grpc_docker.sh19
-rwxr-xr-xtools/gce_setup/shared_startup_funcs.sh2
4 files changed, 50 insertions, 7 deletions
diff --git a/tools/dockerfile/grpc_node/Dockerfile b/tools/dockerfile/grpc_node/Dockerfile
new file mode 100644
index 0000000000..baec0e21d8
--- /dev/null
+++ b/tools/dockerfile/grpc_node/Dockerfile
@@ -0,0 +1,14 @@
+# Dockerfile for gRPC Node
+FROM grpc/node_base
+
+# Update the C libary
+RUN cd /var/local/git/grpc \
+ && git pull --recurse-submodules \
+ && git submodule update --init --recursive
+
+# Install the C core.
+RUN make install_c -C /var/local/git/grpc
+
+RUN cd /var/local/git/grpc/src/node && npm install && node-gyp rebuild
+
+CMD ["/usr/bin/nodejs", "/var/local/git/grpc/src/node/interop/interop_server.js", "--use_tls=true", "--port 8040"] \ No newline at end of file
diff --git a/tools/dockerfile/grpc_node_base/Dockerfile b/tools/dockerfile/grpc_node_base/Dockerfile
new file mode 100644
index 0000000000..28bd7b2556
--- /dev/null
+++ b/tools/dockerfile/grpc_node_base/Dockerfile
@@ -0,0 +1,22 @@
+# Base Dockerfile for gRPC Node.
+#
+# Includes Node installation dependencies
+FROM grpc/base
+
+RUN curl -sL https://deb.nodesource.com/setup | bash -
+
+RUN apt-get update && apt-get install -y nodejs
+
+RUN npm install -g node-gyp
+
+# Get the source from GitHub, this gets the protobuf library as well
+RUN git clone git@github.com:google/grpc.git /var/local/git/grpc
+RUN cd /var/local/git/grpc && \
+ git pull --recurse-submodules && \
+ git submodule update --init --recursive
+
+# Build the C core
+RUN make static_c shared_c -j12 -C /var/local/git/grpc
+
+# Define the default command.
+CMD ["bash"] \ No newline at end of file
diff --git a/tools/gce_setup/grpc_docker.sh b/tools/gce_setup/grpc_docker.sh
index 6bb73269ae..476aa3c156 100755
--- a/tools/gce_setup/grpc_docker.sh
+++ b/tools/gce_setup/grpc_docker.sh
@@ -350,7 +350,7 @@ grpc_interop_test_args() {
[[ -n $1 ]] && { # client_type
case $1 in
- cxx|go|java|nodejs|php|python|ruby)
+ cxx|go|java|node|php|python|ruby)
grpc_gen_test_cmd="grpc_interop_gen_$1_cmd"
declare -F $grpc_gen_test_cmd >> /dev/null || {
echo "-f: test_func for $1 => $grpc_gen_test_cmd is not defined" 1>&2
@@ -381,7 +381,7 @@ grpc_interop_test_args() {
cxx) grpc_port=8010 ;;
go) grpc_port=8020 ;;
java) grpc_port=8030 ;;
- nodejs) grpc_port=8040 ;;
+ node) grpc_port=8040 ;;
python) grpc_port=8050 ;;
ruby) grpc_port=8060 ;;
*) echo "bad server_type: $1" 1>&2; return 1 ;;
@@ -421,7 +421,7 @@ grpc_cloud_prod_test_args() {
[[ -n $1 ]] && { # client_type
case $1 in
- cxx|go|java|nodejs|php|python|ruby)
+ cxx|go|java|node|php|python|ruby)
grpc_gen_test_cmd="grpc_cloud_prod_gen_$1_cmd"
declare -F $grpc_gen_test_cmd >> /dev/null || {
echo "-f: test_func for $1 => $grpc_gen_test_cmd is not defined" 1>&2
@@ -555,7 +555,7 @@ grpc_launch_server_args() {
cxx) grpc_port=8010 ;;
go) grpc_port=8020 ;;
java) grpc_port=8030 ;;
- nodejs) grpc_port=8040 ;;
+ node) grpc_port=8040 ;;
python) grpc_port=8050 ;;
ruby) grpc_port=8060 ;;
*) echo "bad server_type: $1" 1>&2; return 1 ;;
@@ -627,7 +627,7 @@ grpc_launch_server() {
# cxx: 8010
# go: 8020
# java: 8030
-# nodejs: 8040
+# node: 8040
# python: 8050
# ruby: 8060
#
@@ -827,6 +827,13 @@ grpc_interop_gen_cxx_cmd() {
echo $the_cmd
}
+grpc_interop_gen_node_cmd() {
+ local cmd_prefix="sudo docker run grpc/node";
+ local test_script="/usr/bin/nodejs /var/local/git/grpc/src/node/interop/interop_client.js --use_tls=true";
+ local the_cmd="$cmd_prefix $test_script $@";
+ echo $the_cmd
+}
+
# constructs the full dockerized cpp interop test cmd.
#
#
@@ -841,4 +848,4 @@ grpc_cloud_prod_gen_cxx_cmd() {
echo $the_cmd
}
-# TODO(grpc-team): add grpc_interop_gen_xxx_cmd for python|cxx|nodejs
+# TODO(grpc-team): add grpc_interop_gen_python_cmd
diff --git a/tools/gce_setup/shared_startup_funcs.sh b/tools/gce_setup/shared_startup_funcs.sh
index 69f6ba8cc0..438c20a3d6 100755
--- a/tools/gce_setup/shared_startup_funcs.sh
+++ b/tools/gce_setup/shared_startup_funcs.sh
@@ -367,7 +367,7 @@ grpc_docker_launch_registry() {
grpc_docker_pull_known() {
local addr=$1
[[ -n $addr ]] || addr="0.0.0.0:5000"
- local known="base cxx php_base php ruby_base ruby java_base java go"
+ local known="base cxx php_base php ruby_base ruby java_base java go node_base node"
echo "... pulling docker images for '$known'"
for i in $known
do