diff --git a/.dev/builder/Dockerfile b/.dev/builder/Dockerfile new file mode 100644 index 000000000..33a3dfaff --- /dev/null +++ b/.dev/builder/Dockerfile @@ -0,0 +1,19 @@ +FROM ubuntu:latest + +RUN apt update && apt -y install \ + maven \ + openjdk-17-jdk + +RUN curl https://get.docker.com/ | bash - +RUN curl https://get.pnpm.io/install.sh | bash - + +COPY . /build + +COPY .dev/builder/docker-entrypoint.sh /usr/local/bin/entrypoint.sh +RUN chmod +x /usr/local/bin/entrypoint.sh + +WORKDIR /build + +ENTRYPOINT ["entrypoint.sh"] + +CMD mvn -DskipTests=true -Pprod clean package diff --git a/.dev/builder/README.md b/.dev/builder/README.md new file mode 100644 index 000000000..4013e98cf --- /dev/null +++ b/.dev/builder/README.md @@ -0,0 +1,10 @@ +Run: +``` +docker-compose up --renew-anon-volumes --build && docker-compose down +``` + +----- +To debug run before: +``` +#export BUILDKIT_PROGRESS=plain docker compose build +``` \ No newline at end of file diff --git a/.dev/builder/docker-compose.yml b/.dev/builder/docker-compose.yml new file mode 100644 index 000000000..cf9a51459 --- /dev/null +++ b/.dev/builder/docker-compose.yml @@ -0,0 +1,21 @@ +version: '3.8' +name: "kafbat_builder" + +services: + + chonky-builder: + container_name: chonky-builder + build: + context: ../.. + dockerfile: .dev/builder/Dockerfile + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ../..:/build + - node_modules:/build/frontend/node_modules/ # Do not alter this as node_modules might not be transferable between OS w/ different arch + - ${HOME}/.m2/repository:/root/.m2/repository # but it's not the case for maven (which also takes ten times longer to dl) + environment: + - DOCKER_HOST=unix:///var/run/docker.sock +# command: mvn -DskipTests=true -Pprod clean package # this is the default command, feel free to override if needed + +volumes: + node_modules: diff --git a/.dev/builder/docker-entrypoint.sh b/.dev/builder/docker-entrypoint.sh new file mode 100644 index 000000000..9b0e5279a --- /dev/null +++ b/.dev/builder/docker-entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# The volume is mounted from the host but the contents are intact, need to clean +find /build/frontend/node_modules -mindepth 1 -delete + +exec "$@"