Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/buildkit-parallelization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Build and publish Docker image for GHCR

on:
push:

jobs:
build_and_publish:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}/buildkit-parallelization
runs-on: ubuntu-22.04 # ubuntu-latest
steps:
- name: Checkout the repo
uses: actions/checkout@v4

- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GHCR_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ./buildkit-parallelization
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
21 changes: 16 additions & 5 deletions buildkit-parallelization/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
FROM eclipse-temurin@sha256:831f00e903bf888787b8ffd1bf5252e5903e1b19d5bc17f7e5b9761ffec11785 AS builder
FROM eclipse-temurin:17-jdk AS package
WORKDIR /opt/build
COPY . .
RUN ./mvnw --no-transfer-progress --batch-mode verify
RUN ./mvnw --no-transfer-progress --batch-mode -Dmaven.test.skip package

FROM eclipse-temurin@sha256:831f00e903bf888787b8ffd1bf5252e5903e1b19d5bc17f7e5b9761ffec11785 AS release
FROM package AS test
RUN ./mvnw --no-transfer-progress --batch-mode test
RUN touch .faky-test

FROM package AS verify
# Чтобы пропустить долгий maven dependency check, добавьте -Ddependency-check.skip
RUN ./mvnw --no-transfer-progress --batch-mode -Dassembly.skipAssembly -Dmaven.test.skip verify
RUN touch .faky-verify

FROM eclipse-temurin:17-ubi9-minimal AS release
WORKDIR /opt/app
COPY --from=builder /opt/build/target/app.jar .
COPY --from=package /opt/build/target/app.jar .
COPY --from=test /opt/build/.faky-test /dev/null
COPY --from=verify /opt/build/.faky-verify /dev/null

ENV APP_SIGN_ALGO HmacSHA256
ENV APP_SIGN_KEY 073b9ce8277c4d70dba2edf33e80f6a2bde0dbd7e5c9d149ccc20ba8b125129b

USER 1000

EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
CMD ["java", "-jar", "app.jar"]