diff --git a/.drone.yml b/.drone.yml
index a25eb64..1bd54c6 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -3,19 +3,91 @@ kind: pipeline
type: docker
steps:
- - name: kotlin-test
+ - name: kotlin-build
image: maven:3.6.3-jdk-11-slim
+ depends_on: [ ]
commands:
- - mvn test
+ - mvn install
+
+ - name: ts-build-webapp
+ image: node:16.13.2
+ depends_on: [ ]
+ commands:
+ - cd react-webui
+ - yarn --frozen-lockfile
+ - yarn build
+
+ - name: docker-test-backend
+ image: plugins/docker
+ depends_on:
+ - kotlin-build
+ settings:
+ auto_tag: true
+ username:
+ from_secret: docker_username
+ password:
+ from_secret: docker_password
+ dockerfile: docker/backend/Dockefile
+ repo: r.vmaple.dev/ykonsole/backend
+ registry: r.vmaple.dev
+ dry_run: true
when:
event:
exclude:
- tag
- - name: kotlin-build
- image: maven:3.6.3-jdk-11-slim
- commands:
- - mvn install
+ - name: docker-test-frontend
+ image: plugins/docker
+ depends_on:
+ - ts-build-webapp
+ settings:
+ auto_tag: true
+ username:
+ from_secret: docker_username
+ password:
+ from_secret: docker_password
+ dockerfile: docker/frontend/Dockefile
+ repo: r.vmaple.dev/ykonsole/frontend
+ registry: r.vmaple.dev
+ dry_run: true
+ when:
+ event:
+ exclude:
+ - tag
+
+ - name: docker-tag-backend
+ image: plugins/docker
+ depends_on:
+ - kotlin-build
+ settings:
+ auto_tag: true
+ username:
+ from_secret: docker_username
+ password:
+ from_secret: docker_password
+ dockerfile: docker/backend/Dockefile
+ repo: r.vmaple.dev/ykonsole/backend
+ registry: r.vmaple.dev
+ dry_run: true
when:
event:
- tag
+
+ - name: docker-tag-frontend
+ image: plugins/docker
+ depends_on:
+ - ts-build-webapp
+ settings:
+ auto_tag: true
+ username:
+ from_secret: docker_username
+ password:
+ from_secret: docker_password
+ dockerfile: docker/frontend/Dockefile
+ repo: r.vmaple.dev/ykonsole/frontend
+ registry: r.vmaple.dev
+ dry_run: true
+ when:
+ event:
+ - tag
+
diff --git a/.gitignore b/.gitignore
index 6445098..ae47703 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
*/target/
.env
*.iml
+docker-compose.yml
diff --git a/docker/backend/Dockerfile b/docker/backend/Dockerfile
new file mode 100644
index 0000000..c72728c
--- /dev/null
+++ b/docker/backend/Dockerfile
@@ -0,0 +1,6 @@
+FROM openjdk:11-jre-slim-buster
+
+WORKDIR /ykonsole
+COPY ykonsole-server/target/*-jar-with-dependencies.jar app.jar
+
+CMD java -jar /ykonsole/app.jar
diff --git a/docker/bakend/Dockerfile b/docker/bakend/Dockerfile
deleted file mode 100644
index d3f5a12..0000000
--- a/docker/bakend/Dockerfile
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/docker/frontend/Dockerfile b/docker/frontend/Dockerfile
new file mode 100644
index 0000000..47c4b1e
--- /dev/null
+++ b/docker/frontend/Dockerfile
@@ -0,0 +1,4 @@
+FROM nginx:1.23.1-alpine
+
+COPY docker/frontend/default.conf.template /etc/nginx/templates/default.conf.template
+COPY webui-react/dist-webapp /usr/share/nginx/html
diff --git a/docker/frontend/default.conf.template b/docker/frontend/default.conf.template
new file mode 100644
index 0000000..7b97efb
--- /dev/null
+++ b/docker/frontend/default.conf.template
@@ -0,0 +1,20 @@
+server {
+ listen 80 default_server;
+
+ root /usr/share/nginx/html;
+
+ server_name _;
+
+ location / {
+ try_files $uri $uri/ /index.html;
+ }
+
+ location /api {
+ proxy_pass http://ykonsole_backend:8080;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_set_header Host $host;
+ proxy_cache_bypass $http_upgrade;
+ }
+}
\ No newline at end of file
diff --git a/webui-react/src/actions/runtime.ts b/webui-react/src/actions/runtime.ts
index 6d9b4a1..42de737 100644
--- a/webui-react/src/actions/runtime.ts
+++ b/webui-react/src/actions/runtime.ts
@@ -5,11 +5,8 @@ interface RuntimeRepository {
export default function runtimeRepo(): RuntimeRepository {
switch (import.meta.env.VITE_MODE) {
case "webapp":
- if (window.location.hostname === "localhost" || window.location.hostname === "10.24.10.24") {
- return makeRuntimeRepo(`${window.location.hostname}:8080`);
- } else {
- return makeRuntimeRepo(window.location.hostname);
- }
+ const port = window.location.port !== "5173" ? window.location.port : "8080";
+ return makeRuntimeRepo(`${window.location.hostname}:${port}`);
case "chrome-plugin":
return makeRuntimeRepo("127.0.0.1:9999");
default:
diff --git a/ykonsole-server/pom.xml b/ykonsole-server/pom.xml
index 308b422..79abd7c 100644
--- a/ykonsole-server/pom.xml
+++ b/ykonsole-server/pom.xml
@@ -44,4 +44,31 @@
${project.version}
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 2.6
+
+
+ make-assembly
+ package
+ single
+
+
+
+ net.aiterp.git.ykonsole2.ServerKt
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
+