diff --git a/Dockerfile b/Dockerfile index 5973d48..697109e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,22 @@ -# syntax = docker/dockerfile:1.2 -FROM clojure:openjdk-17 AS build +FROM node:22-alpine AS css +WORKDIR /app +COPY package.json package-lock.json ./ +RUN npm ci +COPY resources/css resources/css +COPY src src +RUN npx @tailwindcss/cli -i resources/css/input.css -o resources/public/css/output.css --minify -WORKDIR / -COPY . / +FROM clojure:temurin-21-tools-deps-alpine AS build +WORKDIR /app +COPY deps.edn build.clj ./ +RUN clojure -P && clojure -P -T:build +COPY . . +COPY --from=css /app/resources/public/css/output.css resources/public/css/output.css +RUN clojure -T:build all -RUN clj -Sforce -T:build all - -FROM azul/zulu-openjdk-alpine:17 - -COPY --from=build /target/elprice-standalone.jar /elprice/elprice-standalone.jar - -EXPOSE $PORT - -ENTRYPOINT exec java $JAVA_OPTS -jar /elprice/elprice-standalone.jar +FROM eclipse-temurin:21-jre-alpine +WORKDIR /app +COPY --from=build /app/target/elprice-standalone.jar app.jar +EXPOSE 3030 +ENV PORT=3030 +ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9dadac9 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +services: + app: + build: . + ports: + - "3030:3030" + env_file: + - .env + restart: unless-stopped diff --git a/resources/queries.sql b/resources/queries.sql index 3596213..9ee6371 100644 --- a/resources/queries.sql +++ b/resources/queries.sql @@ -2,7 +2,7 @@ -- :doc Insert a day-ahead price record, skip if already exists INSERT INTO day_ahead_prices (time_utc, time_dk, price_area, price_dkk, price_eur) VALUES (:time-utc, :time-dk, :price-area, :price-dkk, :price-eur) -ON CONFLICT (time_utc, price_area) DO NOTHING; +ON CONFLICT (time_dk, price_area) DO NOTHING; -- :name get-prices-for-date :? :* -- :doc Get all prices for a given date (time_dk local date) and price area