Browse Source

docker

main
Stian Fredrik Aune 2 years ago
parent
commit
ddeca7ba24
  1. 84
      .drone.yml
  2. 1
      .gitignore
  3. 6
      docker/backend/Dockerfile
  4. 1
      docker/bakend/Dockerfile
  5. 4
      docker/frontend/Dockerfile
  6. 20
      docker/frontend/default.conf.template
  7. 7
      webui-react/src/actions/runtime.ts
  8. 27
      ykonsole-server/pom.xml

84
.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

1
.gitignore

@ -2,3 +2,4 @@
*/target/
.env
*.iml
docker-compose.yml

6
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

1
docker/bakend/Dockerfile

@ -1 +0,0 @@

4
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

20
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;
}
}

7
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:

27
ykonsole-server/pom.xml

@ -44,4 +44,31 @@
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals> <goal>single</goal> </goals>
<configuration>
<archive>
<manifest>
<mainClass>net.aiterp.git.ykonsole2.ServerKt</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Loading…
Cancel
Save