You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2021/11/09 03:39:46 UTC

[skywalking-showcase] branch main updated: Add agentless Docker images

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-showcase.git


The following commit(s) were added to refs/heads/main by this push:
     new 5d3fcca  Add agentless Docker images
5d3fcca is described below

commit 5d3fccaecd0d5b765aee85c1d220ecda7c2909a7
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Tue Nov 9 11:39:33 2021 +0800

    Add agentless Docker images
---
 Makefile.in                                           |  1 +
 services/app/.dockerignore                            |  1 +
 services/app/{.dockerignore => Dockerfile.agentless}  | 14 ++++++++++++--
 ...dockerignore => Dockerfile.agentless.dockerignore} |  2 ++
 services/app/Makefile                                 |  5 ++++-
 services/app/server/{index.js => index.agentless.js}  | 15 ---------------
 services/app/server/index.js                          |  2 +-
 services/app/ui/src/{index.js => index.agentless.js}  | 19 ++++---------------
 services/app/ui/src/index.js                          | 12 +++++-------
 .../Dockerfile.agentless}                             |  8 ++++++--
 services/gateway-service/Makefile                     |  4 +++-
 services/load-gen/Makefile                            |  2 +-
 .../Dockerfile.agentless}                             | 14 ++++++++++++--
 services/recommendation-service/Makefile              |  4 +++-
 .../Dockerfile.agentless}                             |  8 ++++++--
 services/songs-service/Makefile                       |  3 ++-
 16 files changed, 63 insertions(+), 51 deletions(-)

diff --git a/Makefile.in b/Makefile.in
index cbf062e..0add014 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -20,6 +20,7 @@ comma := ,
 
 .EXPORT_ALL_VARIABLES:
 
+DOCKER_BUILDKIT ?= 1
 HUB ?= ghcr.io/apache/skywalking-showcase
 TAG ?= $(shell git rev-parse --short HEAD)
 
diff --git a/services/app/.dockerignore b/services/app/.dockerignore
index 7509050..3d3f06e 100644
--- a/services/app/.dockerignore
+++ b/services/app/.dockerignore
@@ -17,3 +17,4 @@
 #
 **/node_modules/**
 **/build/**
+**/*agentless*
diff --git a/services/app/.dockerignore b/services/app/Dockerfile.agentless
similarity index 80%
copy from services/app/.dockerignore
copy to services/app/Dockerfile.agentless
index 7509050..1e2bd27 100644
--- a/services/app/.dockerignore
+++ b/services/app/Dockerfile.agentless
@@ -15,5 +15,15 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-**/node_modules/**
-**/build/**
+FROM node:10
+
+WORKDIR /app
+
+COPY . .
+
+RUN mv ui/src/index.agentless.js ui/src/index.js
+RUN mv server/index.agentless.js server/index.js
+
+RUN npm install && npm run build
+
+CMD npm start
diff --git a/services/app/.dockerignore b/services/app/Dockerfile.agentless.dockerignore
similarity index 92%
copy from services/app/.dockerignore
copy to services/app/Dockerfile.agentless.dockerignore
index 7509050..11000c9 100644
--- a/services/app/.dockerignore
+++ b/services/app/Dockerfile.agentless.dockerignore
@@ -17,3 +17,5 @@
 #
 **/node_modules/**
 **/build/**
+
+index.js # ignore agent files to fail the build in case we have bugs
diff --git a/services/app/Makefile b/services/app/Makefile
index f38b33a..5da48f3 100644
--- a/services/app/Makefile
+++ b/services/app/Makefile
@@ -23,13 +23,16 @@ build:
 
 .PHONY: docker docker.build docker.push
 
-docker: docker.push
+docker: docker.build
 
 docker.build:
 	docker build \
 		--build-arg SW_AGENT_NODEJS_FRONTEND_VERSION=${SW_AGENT_NODEJS_FRONTEND_VERSION} \
 		--build-arg SW_AGENT_NODEJS_BACKEND_VERSION=${SW_AGENT_NODEJS_BACKEND_VERSION} \
 		. -t $(HUB)/app:$(TAG)
+	docker build \
+		. -t $(HUB)/app:$(TAG)-agentless -f Dockerfile.agentless
 
 docker.push: docker.build
 	docker push $(HUB)/app:$(TAG)
+	docker push $(HUB)/app:$(TAG)-agentless
diff --git a/services/app/server/index.js b/services/app/server/index.agentless.js
similarity index 69%
copy from services/app/server/index.js
copy to services/app/server/index.agentless.js
index 0dedbfd..73d0430 100644
--- a/services/app/server/index.js
+++ b/services/app/server/index.agentless.js
@@ -19,18 +19,7 @@
  */
 const path = require('path');
 const express = require('express');
-const { createProxyMiddleware } = require('http-proxy-middleware');
 const axios = require('axios');
-const {default: agent} = require('skywalking-backend-js');
-
-const oapHttpAddress = 'http://oap:12800'
-
-// @feature: nodejs-agent-backend;
-agent.start({
-    serviceName: 'app',
-    maxBufferSize: 1000,
-    traceIgnorePath: '/browser/**,/v3/**,/health',
-});
 
 const PORT = process.env.PORT || 80;
 const GATEWAY = process.env.GATEWAY || 'gateway';
@@ -39,10 +28,6 @@ const app = express();
 
 app.use(express.static(path.resolve(__dirname, '../ui/build')));
 
-// @feature: nodejs-agent-frontend; you need to proxy the path '/browser/*' and '/v3/*' in UI to the OAP 12800 endpoint. You can use reverse proxy like Nginx or anything similar.
-app.use('/browser', createProxyMiddleware({ target: oapHttpAddress }))
-app.use('/v3', createProxyMiddleware({ target: oapHttpAddress }))
-
 app.get('/homepage', async (req, res) => {
     const top = await axios.get(`http://${GATEWAY}/songs/top`);
     const rcmd = await axios.get(`http://${GATEWAY}/rcmd`);
diff --git a/services/app/server/index.js b/services/app/server/index.js
index 0dedbfd..ec83714 100644
--- a/services/app/server/index.js
+++ b/services/app/server/index.js
@@ -21,7 +21,7 @@ const path = require('path');
 const express = require('express');
 const { createProxyMiddleware } = require('http-proxy-middleware');
 const axios = require('axios');
-const {default: agent} = require('skywalking-backend-js');
+const { default: agent } = require('skywalking-backend-js');
 
 const oapHttpAddress = 'http://oap:12800'
 
diff --git a/services/app/ui/src/index.js b/services/app/ui/src/index.agentless.js
similarity index 74%
copy from services/app/ui/src/index.js
copy to services/app/ui/src/index.agentless.js
index 9e58cf8..d266414 100644
--- a/services/app/ui/src/index.js
+++ b/services/app/ui/src/index.agentless.js
@@ -22,20 +22,9 @@ import ReactDOM from 'react-dom';
 import './index.css';
 import App from './App';
 
-import ClientMonitor from 'skywalking-client-js';
-
-const OAP = process.env.OAP || 'oap';
-
-// @feature: nodejs-agent-frontend;
-ClientMonitor.register({
-    service: 'ui',
-    pagePath: '/homepage',
-    serviceVersion: 'v1.0.0',
-});
-
 ReactDOM.render(
-  <React.StrictMode>
-    <App />
-  </React.StrictMode>,
-  document.getElementById('root')
+    <React.StrictMode>
+        <App/>
+    </React.StrictMode>,
+    document.getElementById('root')
 );
diff --git a/services/app/ui/src/index.js b/services/app/ui/src/index.js
index 9e58cf8..52d8017 100644
--- a/services/app/ui/src/index.js
+++ b/services/app/ui/src/index.js
@@ -22,11 +22,9 @@ import ReactDOM from 'react-dom';
 import './index.css';
 import App from './App';
 
+// @feature: nodejs-agent-frontend;
 import ClientMonitor from 'skywalking-client-js';
 
-const OAP = process.env.OAP || 'oap';
-
-// @feature: nodejs-agent-frontend;
 ClientMonitor.register({
     service: 'ui',
     pagePath: '/homepage',
@@ -34,8 +32,8 @@ ClientMonitor.register({
 });
 
 ReactDOM.render(
-  <React.StrictMode>
-    <App />
-  </React.StrictMode>,
-  document.getElementById('root')
+    <React.StrictMode>
+        <App/>
+    </React.StrictMode>,
+    document.getElementById('root')
 );
diff --git a/services/app/.dockerignore b/services/gateway-service/Dockerfile.agentless
similarity index 85%
copy from services/app/.dockerignore
copy to services/gateway-service/Dockerfile.agentless
index 7509050..1223196 100644
--- a/services/app/.dockerignore
+++ b/services/gateway-service/Dockerfile.agentless
@@ -15,5 +15,9 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-**/node_modules/**
-**/build/**
+
+FROM adoptopenjdk/openjdk11:alpine-jre
+
+COPY build/libs/gateway-service-0.0.1-SNAPSHOT.jar /app.jar
+
+CMD ["java", "-jar", "/app.jar"]
diff --git a/services/gateway-service/Makefile b/services/gateway-service/Makefile
index 079ba96..10b5d5a 100644
--- a/services/gateway-service/Makefile
+++ b/services/gateway-service/Makefile
@@ -26,10 +26,12 @@ clean:
 
 .PHONY: docker docker.build docker.push
 
-docker: docker.push
+docker: docker.build
 
 docker.build: build
 	docker build . -t $(HUB)/gateway-service:$(TAG)
+	docker build . -t $(HUB)/gateway-service:$(TAG)-agentless -f Dockerfile.agentless
 
 docker.push: docker.build
 	docker push $(HUB)/gateway-service:$(TAG)
+	docker push $(HUB)/gateway-service:$(TAG)-agentless
diff --git a/services/load-gen/Makefile b/services/load-gen/Makefile
index 05dc0ff..421b35e 100644
--- a/services/load-gen/Makefile
+++ b/services/load-gen/Makefile
@@ -23,7 +23,7 @@ build:
 
 .PHONY: docker docker.build docker.push
 
-docker: docker.push
+docker: docker.build
 
 docker.build:
 	docker build . -t $(HUB)/load-gen:$(TAG)
diff --git a/services/app/.dockerignore b/services/recommendation-service/Dockerfile.agentless
similarity index 86%
copy from services/app/.dockerignore
copy to services/recommendation-service/Dockerfile.agentless
index 7509050..0ed70ef 100644
--- a/services/app/.dockerignore
+++ b/services/recommendation-service/Dockerfile.agentless
@@ -15,5 +15,15 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-**/node_modules/**
-**/build/**
+
+FROM python:3
+
+WORKDIR /workspace
+
+COPY requirements.txt .
+
+RUN pip install -r requirements.txt
+
+COPY src .
+
+CMD python app.py
diff --git a/services/recommendation-service/Makefile b/services/recommendation-service/Makefile
index fff6299..bdcd70d 100644
--- a/services/recommendation-service/Makefile
+++ b/services/recommendation-service/Makefile
@@ -23,10 +23,12 @@ build:
 
 .PHONY: docker docker.build docker.push
 
-docker: docker.push
+docker: docker.build
 
 docker.build:
 	docker build . -t $(HUB)/recommendation-service:$(TAG)
+	docker build . -t $(HUB)/recommendation-service:$(TAG)-agentless -f Dockerfile.agentless
 
 docker.push: docker.build
 	docker push $(HUB)/recommendation-service:$(TAG)
+	docker push $(HUB)/recommendation-service:$(TAG)-agentless
diff --git a/services/app/.dockerignore b/services/songs-service/Dockerfile.agentless
similarity index 85%
copy from services/app/.dockerignore
copy to services/songs-service/Dockerfile.agentless
index 7509050..bdf6d09 100644
--- a/services/app/.dockerignore
+++ b/services/songs-service/Dockerfile.agentless
@@ -15,5 +15,9 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-**/node_modules/**
-**/build/**
+
+FROM adoptopenjdk/openjdk11:alpine-jre
+
+COPY build/libs/songs-service-0.0.1-SNAPSHOT.jar /app.jar
+
+CMD ["java", "-jar", "/app.jar"]
diff --git a/services/songs-service/Makefile b/services/songs-service/Makefile
index d3502af..2916b7f 100644
--- a/services/songs-service/Makefile
+++ b/services/songs-service/Makefile
@@ -26,10 +26,11 @@ clean:
 
 .PHONY: docker docker.build docker.push
 
-docker: docker.push
+docker: docker.build
 
 docker.build: build
 	docker build . -t $(HUB)/songs-service:$(TAG)
+	docker build . -t $(HUB)/songs-service:$(TAG)-agentless -f Dockerfile.agentless
 
 docker.push: docker.build
 	docker push $(HUB)/songs-service:$(TAG)