Skip to content

Commit 969b234

Browse files
committed
add Dockerfiles for Alpine and Distroless builds
1 parent 718ff0b commit 969b234

File tree

4 files changed

+46
-2
lines changed

4 files changed

+46
-2
lines changed

.github/workflows/build.yml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,22 @@ jobs:
3434
build-docker:
3535
needs: build
3636
runs-on: ubuntu-latest
37+
strategy:
38+
fail-fast: false
39+
matrix:
40+
include:
41+
- name: Ubuntu
42+
dockerfile: docker/Dockerfile
43+
suffix: ''
44+
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
45+
- name: Alpine
46+
dockerfile: docker/alpine.Dockerfile
47+
suffix: '-alpine'
48+
platforms: linux/amd64,linux/arm64/v8
49+
- name: Distroless
50+
dockerfile: docker/distroless.Dockerfile
51+
suffix: '-distroless'
52+
platforms: linux/amd64,linux/arm64/v8
3753
steps:
3854
- name: Checkout
3955
uses: actions/checkout@v4
@@ -63,6 +79,8 @@ jobs:
6379
with:
6480
images: |
6581
ghcr.io/${{ github.repository }}
82+
flavor: |
83+
suffix=${{ matrix.suffix }},onlatest=true
6684
tags: |
6785
type=ref,event=branch
6886
type=ref,event=pr
@@ -74,9 +92,9 @@ jobs:
7492
- name: Docker Build ${{ matrix.name }} and Push
7593
uses: docker/build-push-action@v6
7694
with:
77-
file: Dockerfile
95+
file: ${{ matrix.dockerfile }}
7896
context: .
79-
platforms: linux/amd64,linux/arm64/v8
97+
platforms: ${{ matrix.platforms }}
8098
push: true
8199
tags: ${{ steps.meta.outputs.tags }}
82100
labels: ${{ steps.meta.outputs.labels }}

docker/Dockerfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM eclipse-temurin:21-jre-noble
2+
3+
# Run as non-root user
4+
RUN addgroup -g 322 -S lavalink && \
5+
adduser -u 322 -S lavalink lavalink
6+
7+
WORKDIR /opt/Lavalink-Config-Server
8+
9+
RUN chown -R lavalink:lavalink /opt/Lavalink-Config-Server
10+
11+
USER lavalink
12+
13+
COPY build/libs/Lavalink-Config-Server.jar Lavalink-Config-Server.jar
14+
15+
ENTRYPOINT ["java", "-jar"]
16+
17+
CMD ["Lavalink-Config-Server.jar"]
File renamed without changes.

docker/distroless.Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
FROM gcr.io/distroless/java21-debian12:nonroot
2+
3+
WORKDIR /opt/Lavalink
4+
5+
COPY build/libs/Lavalink-Config-Server.jar Lavalink-Config-Server.jar
6+
7+
ENTRYPOINT ["java", "-jar"]
8+
9+
CMD ["Lavalink-Config-Server.jar"]

0 commit comments

Comments
 (0)