Skip to content

Commit ca5a2b7

Browse files
authored
Merge pull request #17 from denismakogon/actions
openjdk and golang images
2 parents e09447c + aa4f9e7 commit ca5a2b7

File tree

7 files changed

+97
-20
lines changed

7 files changed

+97
-20
lines changed

.github/workflows/on_merge_to_golang_image.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ env:
1414
REGISTRY: ghcr.io
1515
FFMPEG_VERSION: "5.0.1"
1616
GOLANG_VERSION: "1"
17+
BUILD_IMAGE: "build"
1718
IMAGE_NAME: ${{ github.repository }}
1819

1920
jobs:
@@ -64,6 +65,17 @@ jobs:
6465
with:
6566
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-golang-${{ env.GOLANG_VERSION }}
6667

68+
69+
- name: Pull build image
70+
run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.BUILD_IMAGE }}
71+
72+
- name: Inspect build image
73+
id: build-image
74+
run: >-
75+
echo "::set-output name=digest::$(
76+
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.BUILD_IMAGE }} | jq -r '.[] | .RepoDigests[]'
77+
)"
78+
6779
# Build and push Docker image with Buildx (don't push on PR)
6880
# https://github.com/docker/build-push-action
6981
- name: "ffmpeg-debian:<ffmpeg-version>-golang-<go-version> image building stage"
@@ -74,7 +86,7 @@ jobs:
7486
push: ${{ github.event_name != 'pull_request' }}
7587
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-golang-${{ env.GOLANG_VERSION }}
7688
build-args: |
77-
FFMPEG_VERSION=${{ env.FFMPEG_VERSION }}
89+
BUILD_IMAGE_DIGEST_TAG=${{ steps.build-image.outputs.digest }}
7890
GOLANG_VERSION=${{ env.GOLANG_VERSION }}
7991
8092
# Sign the resulting Docker image digest except on PRs.

.github/workflows/on_merge_to_openjdk_images.yml

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ on:
1010
env:
1111
REGISTRY: ghcr.io
1212
FFMPEG_VERSION: "5.0.1"
13+
RUNTIME_IMAGE: "runtime"
14+
BASE_IMAGE: "base"
15+
BUILD_IMAGE: "build"
1316
JDK_PKG_URL: "https://download.java.net/java/GA/jdk18.0.1.1/65ae32619e2f40f3a9af3af1851d6e19/2/GPL/openjdk-18.0.1.1_linux-x64_bin.tar.gz"
1417
JDK_EA_PANAMA_PKG_URL: "https://download.java.net/java/early_access/panama/1/openjdk-19-panama+1-13_linux-x64_bin.tar.gz"
1518
JDK_VERSION: "18"
@@ -69,6 +72,26 @@ jobs:
6972
with:
7073
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-openjdk-${{ env.JDK_EA_VERSION }}-ea-panama
7174

75+
- name: Pull build image
76+
run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.BUILD_IMAGE }}
77+
78+
- name: Inspect build image
79+
id: build-image
80+
run: >-
81+
echo "::set-output name=digest::$(
82+
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.BUILD_IMAGE }} | jq -r '.[] | .RepoDigests[]'
83+
)"
84+
85+
- name: Pull runtime image
86+
run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.RUNTIME_IMAGE }}
87+
88+
- name: Inspect runtime image
89+
id: runtime-image
90+
run: >-
91+
echo "::set-output name=digest::$(
92+
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.RUNTIME_IMAGE }} | jq -r '.[] | .RepoDigests[]'
93+
)"
94+
7295
# Build and push Docker image with Buildx (don't push on PR)
7396
# https://github.com/docker/build-push-action
7497
- name: "ffmpeg-debian:<ffmpeg-version>-openjdk-<jdk-version> image building stage"
@@ -79,7 +102,8 @@ jobs:
79102
push: ${{ github.event_name != 'pull_request' }}
80103
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-openjdk-${{ env.JDK_VERSION }}
81104
build-args: |
82-
FFMPEG_VERSION=${{ env.FFMPEG_VERSION }}
105+
BUILD_IMAGE_DIGEST_TAG=${{ steps.build-image.outputs.digest }}
106+
RUNTIME_IMAGE_DIGEST_TAG=${{ steps.runtime-image.outputs.digest }}
83107
JDK_PKG_URL=${{ env.JDK_PKG_URL }}
84108
85109
- name: "ffmpeg-debian:<ffmpeg-version>-openjdk-<jdk-version>-ea-panama image building stage"
@@ -90,7 +114,8 @@ jobs:
90114
push: ${{ github.event_name != 'pull_request' }}
91115
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-openjdk-${{ env.JDK_EA_VERSION }}-ea-panama
92116
build-args: |
93-
FFMPEG_VERSION=${{ env.FFMPEG_VERSION }}
117+
BUILD_IMAGE_DIGEST_TAG=${{ steps.build-image.outputs.digest }}
118+
RUNTIME_IMAGE_DIGEST_TAG=${{ steps.runtime-image.outputs.digest }}
94119
JDK_PKG_URL=${{ env.JDK_EA_PANAMA_PKG_URL }}
95120
96121
# Sign the resulting Docker image digest except on PRs.

.github/workflows/on_pr_to_golang_image.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ env:
1010
REGISTRY: ghcr.io
1111
FFMPEG_VERSION: "5.0.1"
1212
GOLANG_VERSION: "1"
13+
BUILD_IMAGE: "build"
1314
IMAGE_NAME: ${{ github.repository }}
1415

1516

@@ -35,6 +36,16 @@ jobs:
3536
with:
3637
driver-opts: network=host
3738

39+
- name: Pull build image
40+
run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.BUILD_IMAGE }}
41+
42+
- name: Inspect build image
43+
id: build-image
44+
run: >-
45+
echo "::set-output name=digest::$(
46+
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.BUILD_IMAGE }} | jq -r '.[] | .RepoDigests[]'
47+
)"
48+
3849
- name: "ffmpeg-debian:<ffmpeg-version>-golang-<go-version> image building stage"
3950
id: golang-image
4051
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a
@@ -43,5 +54,5 @@ jobs:
4354
push: false
4455
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-golang-${{ env.GOLANG_VERSION }}
4556
build-args: |
46-
FFMPEG_VERSION=${{ env.FFMPEG_VERSION }}
57+
BUILD_IMAGE_DIGEST_TAG=${{ steps.build-image.outputs.digest }}
4758
GOLANG_VERSION=${{ env.GOLANG_VERSION }}

.github/workflows/on_pr_to_openjdk_images.yml

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ on:
99
env:
1010
REGISTRY: ghcr.io
1111
FFMPEG_VERSION: "5.0.1"
12+
RUNTIME_IMAGE: "runtime"
13+
BASE_IMAGE: "base"
14+
BUILD_IMAGE: "build"
1215
JDK_PKG_URL: "https://download.java.net/java/GA/jdk18.0.1.1/65ae32619e2f40f3a9af3af1851d6e19/2/GPL/openjdk-18.0.1.1_linux-x64_bin.tar.gz"
1316
JDK_EA_PANAMA_PKG_URL: "https://download.java.net/java/early_access/panama/1/openjdk-19-panama+1-13_linux-x64_bin.tar.gz"
1417
JDK_VERSION: "18"
@@ -38,6 +41,26 @@ jobs:
3841
with:
3942
driver-opts: network=host
4043

44+
- name: Pull build image
45+
run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.BUILD_IMAGE }}
46+
47+
- name: Inspect build image
48+
id: build-image
49+
run: >-
50+
echo "::set-output name=digest::$(
51+
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.BUILD_IMAGE }} | jq -r '.[] | .RepoDigests[]'
52+
)"
53+
54+
- name: Pull runtime image
55+
run: docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.RUNTIME_IMAGE }}
56+
57+
- name: Inspect runtime image
58+
id: runtime-image
59+
run: >-
60+
echo "::set-output name=digest::$(
61+
docker image inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-${{ env.RUNTIME_IMAGE }} | jq -r '.[] | .RepoDigests[]'
62+
)"
63+
4164
- name: "ffmpeg-debian:<ffmpeg-version>-openjdk-<jdk-version> image building stage"
4265
id: openjdk-ga-image
4366
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a
@@ -46,9 +69,9 @@ jobs:
4669
push: false
4770
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-openjdk-${{ env.JDK_VERSION }}
4871
build-args: |
49-
FFMPEG_VERSION=${{ env.FFMPEG_VERSION }}
72+
BUILD_IMAGE_DIGEST_TAG=${{ steps.build-image.outputs.digest }}
73+
RUNTIME_IMAGE_DIGEST_TAG=${{ steps.runtime-image.outputs.digest }}
5074
JDK_PKG_URL=${{ env.JDK_PKG_URL }}
51-
JDK_VERSION=${{ env.JDK_VERSION }}
5275
5376
- name: "ffmpeg-debian:<ffmpeg-version>-openjdk-<jdk-version>-ea-panama image building stage"
5477
id: openjdk-ea-panama-image
@@ -58,6 +81,6 @@ jobs:
5881
push: false
5982
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.FFMPEG_VERSION }}-openjdk-${{ env.JDK_EA_VERSION }}-ea-panama
6083
build-args: |
61-
FFMPEG_VERSION=${{ env.FFMPEG_VERSION }}
84+
BUILD_IMAGE_DIGEST_TAG=${{ steps.build-image.outputs.digest }}
85+
RUNTIME_IMAGE_DIGEST_TAG=${{ steps.runtime-image.outputs.digest }}
6286
JDK_PKG_URL=${{ env.JDK_EA_PANAMA_PKG_URL }}
63-
JDK_VERSION=${{ env.JDK_EA_VERSION }}

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,22 +66,27 @@ see the [following documentation](https://github.com/denismakogon/ffmpeg-debian/
6666
runtime image:
6767
```shell
6868
docker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-runtime -f runtime/Dockerfile \
69-
--build-arg "BASE_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian:base" \
70-
--build-arg "BUILD_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian:5.0.1-build" \
71-
.
69+
--build-arg "BASE_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:f6781e831ef68a7ff7170374639be85098b49c6a7740a3652d2f8f1ba43afc1e" \
70+
--build-arg "BUILD_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:2b421ef4be773ce80d3f82717d9fd845e6cc03dfad4c961b2886b7a59117a609" \
71+
.
7272
```
7373

7474
Golang image:
7575
```shell
76-
docker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-golang-1 -f golang/Dockerfile --build-arg "FFMPEG_VERSION=5.0.1" --build-arg "GOLANG_VERSION=1" .
76+
docker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-golang-1 -f golang/Dockerfile \
77+
--build-arg "BUILD_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:2b421ef4be773ce80d3f82717d9fd845e6cc03dfad4c961b2886b7a59117a609" \
78+
--build-arg "GOLANG_VERSION=1" \
79+
.
7780
```
7881
Please note, golang version must in ffmpeg image must match to `GOLANG_VERSION` build arg.
7982

8083
OpenJDK image:
8184
```shell
8285
docker build -t ghcr.io/denismakogon/ffmpeg-debian:5.0.1-openjdk-18 -f openjdk/Dockerfile \
83-
--build-arg "FFMPEG_VERSION=5.0.1" \
84-
--build-arg "JDK_PKG_URL=https://download.java.net/java/GA/jdk18.0.1.1/65ae32619e2f40f3a9af3af1851d6e19/2/GPL/openjdk-18.0.1.1_linux-x64_bin.tar.gz" .
86+
--build-arg "BASE_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:f6781e831ef68a7ff7170374639be85098b49c6a7740a3652d2f8f1ba43afc1e" \
87+
--build-arg "BUILD_IMAGE_DIGEST_TAG=ghcr.io/denismakogon/ffmpeg-debian@sha256:2b421ef4be773ce80d3f82717d9fd845e6cc03dfad4c961b2886b7a59117a609" \
88+
--build-arg "JDK_PKG_URL=https://download.java.net/java/GA/jdk18.0.1.1/65ae32619e2f40f3a9af3af1851d6e19/2/GPL/openjdk-18.0.1.1_linux-x64_bin.tar.gz" \
89+
.
8590
```
8691

8792
```shell

golang/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
ARG FFMPEG_VERSION=5.0.1
1+
ARG BUILD_IMAGE_DIGEST_TAG="ghcr.io/denismakogon/ffmpeg-debian:5.0.1-build"
22
ARG GOLANG_VERSION=1
33

4-
FROM ghcr.io/denismakogon/ffmpeg-debian:${FFMPEG_VERSION}-build as build-stage
4+
FROM ${BUILD_IMAGE_DIGEST_TAG} as build-stage
55

6-
FROM golang:${GOLANG_VERSION}-bullseye
6+
FROM docker.io/library/golang:${GOLANG_VERSION}-bullseye
77

88
RUN apt-get update -y && apt-get install -y --no-install-recommends \
99
libva-drm2 \

openjdk/Dockerfile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
ARG FFMPEG_VERSION=5.0.1
1+
ARG BUILD_IMAGE_DIGEST_TAG="ghcr.io/denismakogon/ffmpeg-debian:5.0.1-build"
2+
ARG RUNTIME_IMAGE_DIGEST_TAG="ghcr.io/denismakogon/ffmpeg-debian:5.0.1-runtime"
23

3-
FROM ghcr.io/denismakogon/ffmpeg-debian:${FFMPEG_VERSION}-build as build-stage
4+
FROM ${BUILD_IMAGE_DIGEST_TAG} as build-stage
45

5-
FROM ghcr.io/denismakogon/ffmpeg-debian:${FFMPEG_VERSION}-runtime
6+
FROM ${RUNTIME_IMAGE_DIGEST_TAG}
67

78
ARG JDK_PKG_URL
89

0 commit comments

Comments
 (0)