From f4e171b2a10ecb6c7e0690232f711bec711569ac Mon Sep 17 00:00:00 2001 From: Martin Treml Date: Tue, 9 Jul 2024 16:25:41 +0200 Subject: [PATCH] Revert "Docker runtime follow up" --- .github/workflows/test.yml | 7 +- Dockerfile | 54 ++--- Makefile | 9 +- README.md | 14 +- cmd/eval-dev-quality/cmd/command.go | 10 - cmd/eval-dev-quality/cmd/evaluate.go | 67 +++--- cmd/eval-dev-quality/cmd/evaluate_test.go | 246 ---------------------- 7 files changed, 48 insertions(+), 359 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 78ca5157..e097d2f7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,7 +22,7 @@ jobs: java-version: '11' - name: Set up Maven - uses: stCarolas/setup-maven@v5 + uses: stCarolas/setup-maven@v4.5 with: maven-version: '3.9.1' @@ -36,11 +36,6 @@ jobs: run: make install shell: bash # Explicitly use Bash because otherwise failing Windows jobs are not erroring. - - name: Install required tools - run: | - make install-tools - shell: bash # Explicitly use Bash because otherwise failing Windows jobs are not erroring. - - name: Install testing tools run: | make install-tools-testing diff --git a/Dockerfile b/Dockerfile index b2e4d506..5ba95a69 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,62 +1,40 @@ -# Builder image. -FROM golang:latest as builder - -WORKDIR /app -COPY ./ ./ - -# Build the binary. -RUN go mod tidy -RUN CGO_ENABLED=0 go build -o eval-dev-quality ./cmd/eval-dev-quality - -# Actual running image. FROM ubuntu:noble RUN apt-get update && apt-get install -y ca-certificates wget unzip git make && update-ca-certificates -# Non-root ollama need a hardcoded directory to store ssh-key. -RUN mkdir -p /.ollama && chmod 777 /.ollama -# Same for symflower -RUN mkdir -p /.config && chmod 777 /.config -RUN mkdir -p /.eval-dev-quality && chmod 777 /.eval-dev-quality -RUN mkdir -p /.cache && chmod 777 /.cache +WORKDIR /home/ubuntu/eval-dev-quality +COPY ./ ./ +RUN chown -R ubuntu:ubuntu ./ -# Switch to the ubuntu user as we want it to run as non-root. USER ubuntu -WORKDIR /app -COPY --chown=ubuntu:ubuntu ./testdata ./testdata -COPY --chown=ubuntu:ubuntu ./Makefile ./Makefile -RUN mkdir -p .eval-dev-quality +RUN mkdir -p ~/.eval-dev-quality # Install Maven RUN wget https://archive.apache.org/dist/maven/maven-3/3.9.1/binaries/apache-maven-3.9.1-bin.tar.gz && \ - tar -xf apache-maven-3.9.1-bin.tar.gz -C /app/.eval-dev-quality/ && \ + tar -xf apache-maven-3.9.1-bin.tar.gz -C ~/.eval-dev-quality/ && \ rm apache-maven-3.9.1-bin.tar.gz -ENV PATH="${PATH}:/app/.eval-dev-quality/apache-maven-3.9.1/bin" +ENV PATH="${PATH}:/home/ubuntu/.eval-dev-quality/apache-maven-3.9.1/bin" # Install Gradle RUN wget https://services.gradle.org/distributions/gradle-8.0.2-bin.zip && \ - unzip gradle-8.0.2-bin.zip -d /app/.eval-dev-quality/ && \ + unzip gradle-8.0.2-bin.zip -d ~/.eval-dev-quality/ && \ rm gradle-8.0.2-bin.zip -ENV PATH="${PATH}:/app/.eval-dev-quality/gradle-8.0.2/bin" +ENV PATH="${PATH}:/home/ubuntu/.eval-dev-quality/gradle-8.0.2/bin" # Install Java RUN wget https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.tar.gz && \ - tar -xf amazon-corretto-11-x64-linux-jdk.tar.gz -C /app/.eval-dev-quality/ && \ + tar -xf amazon-corretto-11-x64-linux-jdk.tar.gz -C ~/.eval-dev-quality/ && \ rm amazon-corretto-11-x64-linux-jdk.tar.gz -ENV JAVA_HOME="/app/.eval-dev-quality/amazon-corretto-11.0.23.9.1-linux-x64" +ENV JAVA_HOME="/home/ubuntu/.eval-dev-quality/amazon-corretto-11.0.23.9.1-linux-x64" ENV PATH="${PATH}:${JAVA_HOME}/bin" # Install Go RUN wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz && \ - tar -xf go1.21.5.linux-amd64.tar.gz -C /app/.eval-dev-quality/ && \ + tar -xf go1.21.5.linux-amd64.tar.gz -C ~/.eval-dev-quality/ && \ rm go1.21.5.linux-amd64.tar.gz -ENV PATH="${PATH}:/app/.eval-dev-quality/go/bin" -RUN go env -w GOPATH=/app/.eval-dev-quality/go +ENV PATH="${PATH}:/home/ubuntu/.eval-dev-quality/go/bin" +ENV PATH="${PATH}:/home/ubuntu/go/bin" -# Install the binary -COPY --from=builder --chown=ubuntu:ubuntu /app/eval-dev-quality /app/.eval-dev-quality/bin/ -ENV PATH="${PATH}:/app/.eval-dev-quality/bin" -RUN make install-tools-testing -RUN make install-tools /app/.eval-dev-quality/bin +# Setup the evaluation -# CHMOD everything because of non-root user ids -RUN chmod -R 777 /app +RUN make install-all +ENV PATH="${PATH}:/home/ubuntu/.eval-dev-quality/bin" diff --git a/Makefile b/Makefile index 12a83e26..509e1881 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ export ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) export PACKAGE_BASE := github.com/symflower/eval-dev-quality -export UNIT_TEST_TIMEOUT := 720 +export UNIT_TEST_TIMEOUT := 480 ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) $(eval $(ARGS):;@:) # turn arguments into do-nothing targets @@ -44,16 +44,13 @@ install: # [