From 8fd5f11df6b1f0ac7d85c21ae6d83730b42c6e02 Mon Sep 17 00:00:00 2001 From: Guillaume Leroy Date: Thu, 21 Sep 2023 11:06:42 +0200 Subject: [PATCH] build(docker): refactor Dockerfile --- .dockerignore | 13 +++++++++++++ .github/workflows/docker.yml | 25 ++++++++----------------- Dockerfile | 14 ++++++++++++++ README.md | 4 +--- docker/Dockerfile | 7 ------- 5 files changed, 36 insertions(+), 27 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile delete mode 100644 docker/Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7d3b746 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,13 @@ +/.github +/.gradle +/.vscode +/bin +/build +/conf +/gradle +/.dockerignore +/.gitignore +/docker-compose.yml +/Dockerfile +/LICENSE +/README.md diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 4fd801a..ced0024 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -6,10 +6,6 @@ on: keycloak_version: description: Keycloak version required: true - keycloak_bcrypt_version: - description: Keycloak BCrypt version - required: true - default: 1.6.0 jobs: docker: @@ -18,18 +14,14 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - - - name: Set up Java - uses: actions/setup-java@v3 with: - distribution: adopt - java-version: '17' - - - name: Build - run: ./gradlew jar -Pdependency.keycloak.version=${{ github.event.inputs.keycloak_version }} + fetch-depth: 0 - - name: Copy JAR into docker directory - run: cp build/libs/keycloak-bcrypt-${{ github.event.inputs.keycloak_bcrypt_version }}.jar docker + - id: version + name: Get latest version + run: | + tag=$(git describe --abbrev=0 --tags) + echo version=${tag:1:} >> $GITHUB_OUTPUTS - name: Login to DockerHub uses: docker/login-action@v1 @@ -40,9 +32,8 @@ jobs: - name: Build and push Docker image uses: docker/build-push-action@v2 with: - context: docker build-args: | keycloak_version=${{ github.event.inputs.keycloak_version }} - keycloak_bcrypt_version=${{ github.event.inputs.keycloak_bcrypt_version }} + context: . push: true - tags: gleroy/keycloak-bcrypt:${{ github.event.inputs.keycloak_version }}_${{ github.event.inputs.keycloak_bcrypt_version }},gleroy/keycloak-bcrypt:latest + tags: gleroy/keycloak-bcrypt:${{ github.event.inputs.keycloak_version }}_${{ steps.version.outputs.version }},gleroy/keycloak-bcrypt:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b1ad91f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +ARG gradle_version=jdk17 +ARG keycloak_version + +FROM gradle:${gradle_version} as build + +WORKDIR /app + +COPY . . + +RUN gradle assemble + +FROM quay.io/keycloak/keycloak:${keycloak_version} + +COPY --from=build /app/build/libs/*.jar /opt/keycloak/providers/ diff --git a/README.md b/README.md index 0244f0e..dd5c91b 100644 --- a/README.md +++ b/README.md @@ -11,12 +11,10 @@ Add a password hash provider to handle BCrypt passwords inside Keycloak. ## Build Docker image ```bash -cp build/libs/keycloak-bcrypt-${KEYCLOAK_BCRYPT_VERSION}.jar docker docker build \ --build-arg keycloak_version=${KEYCLOAK_VERSION} \ - --build-arg keycloak_bcrypt_version=${KEYCLOAK_BCRYPT_VERSION} \ -t gleroy/keycloak-bcrypt \ - docker + . ``` ## Test with docker-compose diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index 2aef6f2..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -ARG keycloak_version - -FROM quay.io/keycloak/keycloak:${keycloak_version} - -ARG keycloak_bcrypt_version=1.5.1 - -COPY ./keycloak-bcrypt-${keycloak_bcrypt_version}.jar /opt/keycloak/providers/