From ddeca7ba24724c6521d8e1bd440a02a112bee1a1 Mon Sep 17 00:00:00 2001 From: Stian Fredrik Aune Date: Wed, 31 Aug 2022 17:48:22 +0200 Subject: [PATCH] docker --- .drone.yml | 84 +++++++++++++++++++++++++-- .gitignore | 1 + docker/backend/Dockerfile | 6 ++ docker/bakend/Dockerfile | 1 - docker/frontend/Dockerfile | 4 ++ docker/frontend/default.conf.template | 20 +++++++ webui-react/src/actions/runtime.ts | 7 +-- ykonsole-server/pom.xml | 27 +++++++++ 8 files changed, 138 insertions(+), 12 deletions(-) create mode 100644 docker/backend/Dockerfile delete mode 100644 docker/bakend/Dockerfile create mode 100644 docker/frontend/Dockerfile create mode 100644 docker/frontend/default.conf.template 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 + + + + + + +