Skip to content

Commit c7e8af7

Browse files
heliocastrogoneall
authored andcommitted
feat(docker): Improve docker build and prevent double path in naming
Signed-off-by: Helio Chissini de Castro <dev@heliocastro.info>
1 parent 968beea commit c7e8af7

2 files changed

Lines changed: 22 additions & 28 deletions

File tree

.github/workflows/docker_deploy.yml

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,14 @@
66
name: Docker Build
77

88
on:
9+
workflow_dispatch:
10+
pull_request:
11+
paths:
12+
- Dockerfile
13+
- .github/workflows/docker_deploy.yml
914
push:
1015
paths-ignore:
11-
- "**.md"
16+
- '**.md'
1217
tags:
1318
- 'v*'
1419
env:
@@ -24,42 +29,34 @@ jobs:
2429

2530
steps:
2631
- name: Checkout main repository
27-
uses: actions/checkout@v3
28-
29-
- name: Set environment variables
30-
run: |
31-
echo "ORG_BASE_NAME=${GITHUB_REPOSITORY}" >> $GITHUB_ENV
32-
echo "TOOLS_JAVA_VERSION=${GITHUB_REF_NAME/v/}" >> $GITHUB_ENV
33-
- name: Echoing current version
34-
run: |
35-
echo "$TOOLS_JAVA_VERSION"
36-
echo $GITHUB_REF_NAME
32+
uses: actions/checkout@v5
3733

3834
- name: Set up Docker Buildx
39-
uses: docker/setup-buildx-action@v2
35+
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
4036

4137
- name: Login to GitHub Container Registry
42-
uses: docker/login-action@v2
38+
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
4339
with:
4440
registry: ${{ env.REGISTRY }}
4541
username: ${{ github.actor }}
4642
password: ${{ secrets.GITHUB_TOKEN }}
4743

4844
- name: Extract components metadata
4945
id: meta_base
50-
uses: docker/metadata-action@v4
46+
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v51.0.0
5147
with:
52-
images: |
53-
${{ env.REGISTRY }}/${{ env.ORG_BASE_NAME }}/tools-java
48+
tags: |
49+
type=ref,event=tag
50+
type=semver,pattern={{version}}
51+
type=raw,value=main,enable=${{ github.ref == 'refs/heads/main' }}
52+
labels: org.opencontainers.image.licenses=Apache-2.0
5453

5554
- name: Build Container
56-
uses: docker/build-push-action@v3
55+
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
5756
with:
5857
context: .
59-
push: true
58+
push: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
6059
load: false
61-
build-args: |
62-
TOOLS_JAVA_VERSION=${{ env.TOOLS_JAVA_VERSION }}
6360
tags: |
6461
${{ steps.meta_base.outputs.tags }}
6562
labels: ${{ steps.meta_base.outputs.labels }}

Dockerfile

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
11
# syntax=docker/dockerfile:1.4
22

33
# Set Java versions
4-
ARG JAVA_VERSION=17
4+
ARG JAVA_VERSION=21
55

66
# Use Maven eclipse Temurin based
7-
FROM maven:3.8-eclipse-temurin-$JAVA_VERSION as build
8-
9-
ARG TOOLS_JAVA_VERSION=1.1.5-SNAPSHOT
7+
FROM maven:3.9-eclipse-temurin-$JAVA_VERSION as build
108

119
WORKDIR /build
1210

1311
# BUILD
1412
RUN --mount=type=cache,target=/root/.m2 \
1513
--mount=type=bind,source=$PWD,target=/build,rw \
16-
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install \
14+
export TOOLS_JAVA_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) \
15+
&& mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install \
1716
&& mkdir -p /usr/lib/java/spdx \
1817
&& cp target/tools-java-$TOOLS_JAVA_VERSION-jar-with-dependencies.jar /usr/lib/java/spdx/
1918

20-
2119
# Configure the wrapper script
2220
COPY scripts/tools-java-wrapper.sh /usr/bin/tools-java
2321

2422
# Make the bwrapper match tools version
2523
RUN sed -i "s/@@VERSION@@/$TOOLS_JAVA_VERSION/g" /usr/bin/tools-java \
2624
&& chmod +x /usr/bin/tools-java
2725

28-
2926
# Deploy image
3027
FROM eclipse-temurin:$JAVA_VERSION as run
3128

3229
COPY --from=build /usr/lib/java/spdx /usr/lib/java/spdx
3330
COPY --from=build /usr/bin/tools-java /usr/bin/tools-java
3431

35-
ENTRYPOINT [ "/usr/bin/tools-java" ]
32+
ENTRYPOINT [ "/usr/bin/tools-java" ]

0 commit comments

Comments
 (0)