diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 7b78e880..00000000 --- a/.dockerignore +++ /dev/null @@ -1,7 +0,0 @@ -# ignore everything -* - -# allow only what we need -!commafeed-server/target/commafeed.jar -!commafeed-server/config.yml.example - diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d2ba3b56..b6801282 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Java CI +name: ci on: [ push ] @@ -43,3 +43,55 @@ jobs: with: name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }} path: commafeed-server/target/commafeed-*-runner + + # Docker + - name: Login to Container Registry + uses: docker/login-action@v3 + if: ${{ github.ref_type == 'tag' || github.ref_name == 'master' }} + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Docker build and push tag - native + uses: docker/build-push-action@v6 + if: ${{ github.ref_type == 'tag' }} + with: + context: commafeed-server + file: src/main/docker/Dockerfile.native + push: true + platforms: linux/amd64 + tags: | + athou/commafeed:latest + athou/commafeed:${{ github.ref_name }} + + - name: Docker build and push tag - jvm + uses: docker/build-push-action@v6 + if: ${{ github.ref_type == 'tag' }} + with: + context: commafeed-server + file: src/main/docker/Dockerfile.jvm + push: true + platforms: linux/amd64,linux/arm64/v8 + tags: | + athou/commafeed:latest-jvm + athou/commafeed:${{ github.ref_name }}-jvm + + - name: Docker build and push master - native + uses: docker/build-push-action@v6 + if: ${{ github.ref_name == 'master' }} + with: + context: commafeed-server + file: src/main/docker/Dockerfile.native + push: true + platforms: linux/amd64 + tags: athou/commafeed:master + + - name: Docker build and push master - jvm + uses: docker/build-push-action@v6 + if: ${{ github.ref_name == 'master' }} + with: + context: commafeed-server + file: src/main/docker/Dockerfile.jvm + push: true + platforms: linux/amd64 + tags: athou/commafeed:master-jvm diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 4535100e..00000000 --- a/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM ibm-semeru-runtimes:open-21.0.4_7-jre - -EXPOSE 8082 - -RUN mkdir -p /commafeed/data -VOLUME /commafeed/data - -COPY commafeed-server/config.yml.example config.yml -COPY commafeed-server/target/commafeed.jar . - -CMD ["java", \ - "-Djava.net.preferIPv4Stack=true", \ - "-Xtune:virtualized", \ - "-Xminf0.05", \ - "-Xmaxf0.1", \ - "-jar", \ - "commafeed.jar", \ - "server", \ - "config.yml"] diff --git a/commafeed-server/TODO.md b/commafeed-server/TODO.md index 3a14ea57..228202a1 100644 --- a/commafeed-server/TODO.md +++ b/commafeed-server/TODO.md @@ -8,7 +8,9 @@ MVP: - cookie duration too short - https://github.com/quarkusio/quarkus/issues/42463 +- mvn profile instead of -Dquarkus.datasource.db-kind - update dockerfile + - release after tag (new job that downloads all artifacts because we need them all to create the release) - update github actions (build and copy outside target each database artifact) - update readme - update release notes (+ mention h2 migration has been removed, upgrade to last 4.x is required) diff --git a/commafeed-server/src/main/docker/Dockerfile.jvm b/commafeed-server/src/main/docker/Dockerfile.jvm new file mode 100644 index 00000000..38f94ea1 --- /dev/null +++ b/commafeed-server/src/main/docker/Dockerfile.jvm @@ -0,0 +1,16 @@ +FROM ibm-semeru-runtimes:open-21.0.3_9-jre + +EXPOSE 8082 + +RUN mkdir -p /commafeed/data +VOLUME /commafeed/data + +COPY commafeed-server/target/quarkus-app/ /commafeed/app +WORKDIR /commafeed/app + +CMD ["java", \ + "-Xtune:virtualized", \ + "-Xminf0.05", \ + "-Xmaxf0.1", \ + "-jar", \ + "quarkus-run.jar"] diff --git a/commafeed-server/src/main/docker/Dockerfile.native b/commafeed-server/src/main/docker/Dockerfile.native new file mode 100644 index 00000000..9393734f --- /dev/null +++ b/commafeed-server/src/main/docker/Dockerfile.native @@ -0,0 +1,9 @@ +FROM debian:12.6 +EXPOSE 8082 + +RUN mkdir -p /commafeed/data +VOLUME /commafeed/data + +COPY commafeed-server/target/commafeed-*-runner /commafeed/app/application +WORKDIR /commafeed/app +CMD ["./application"] diff --git a/commafeed-server/src/main/resources/application.properties b/commafeed-server/src/main/resources/application.properties index 733fd569..82a33f85 100644 --- a/commafeed-server/src/main/resources/application.properties +++ b/commafeed-server/src/main/resources/application.properties @@ -41,3 +41,9 @@ quarkus.shutdown.timeout=5s %test.commafeed.smtp.user-name=user %test.commafeed.smtp.password=pass %test.commafeed.smtp.from-address=noreply@commafeed.com + + +# prod profile overrides +%prod.quarkus.datasource.jdbc.url=jdbc:h2:/commafeed/data/db;DEFRAG_ALWAYS=TRUE +%prod.quarkus.datasource.username=sa +%prod.quarkus.datasource.password=sa \ No newline at end of file