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
85 changes: 85 additions & 0 deletions .github/workflows/push-docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Push Docker Image

on:
workflow_call:
inputs:
version:
description: The version of Red5 Server to be pushed
type: string
required: true
secrets:
dockerhub-password:
description: Docker Hub password
required: true
dockerhub-username:
description: Docker Hub username
required: true
dockerhub-repository:
description: Docker Hub repository (e.g., username/repository)
required: true

jobs:
substring-version:
if: github.repository == 'Red5/red5-server'
runs-on: ubuntu-latest
outputs:
version: ${{ steps.substring.outputs.substring }}
steps:
- name: Substring version
id: substring
uses: bhowell2/github-substring-action@1.0.2
with:
value: ${{ inputs.version }}
index_of_str: v

retrieve-version-parts:
if: github.repository == 'Red5/red5-server'
runs-on: ubuntu-latest
needs: substring-version
outputs:
major-version: ${{ steps.split.outputs._0 }}
minor-version: ${{ steps.split.outputs._1 }}
patch-version: ${{ steps.split.outputs._2 }}
steps:
- name: Retrieve version parts
id: split
uses: winterjung/split@v2
with:
msg: ${{ needs.substring-version.outputs.version }}
separator: .

push-docker-image:
if: github.repository == 'Red5/red5-server'
runs-on: ubuntu-latest
needs: retrieve-version-parts
steps:
- uses: actions/checkout@v6
with:
repository: 'Red5/docker'
path: docker-repo
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
password: ${{ secrets.dockerhub-password }}
username: ${{ secrets.dockerhub-username }}
- name: Build and push Docker image
uses: docker/build-push-action@v7
env:
RED5_VERSION: ${{ needs.retrieve-version-parts.outputs.major-version }}.${{needs.retrieve-version-parts.outputs.minor-version}}.${{ needs.retrieve-version-parts.outputs.patch-version }}
with:
build-args: |
RED5_VERSION=${{ env.RED5_VERSION }}
context: .
file: ./docker-repo/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
${{ secrets.dockerhub-repository }}:${{ env.RED5_VERSION }}
${{ secrets.dockerhub-repository }}:${{ needs.retrieve-version-parts.outputs.major-version }}
${{ secrets.dockerhub-repository }}:${{ needs.retrieve-version-parts.outputs.major-version }}.${{ needs.retrieve-version-parts.outputs.minor-version }}
${{ secrets.dockerhub-repository }}:latest
1 change: 0 additions & 1 deletion Dockerfile

This file was deleted.

35 changes: 35 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#
# Red5 + JDK 21 Dockerfile
#
# https://github.com/Red5/docker
# https://hub.docker.com/_/eclipse-temurin
#
FROM eclipse-temurin:21-jdk
LABEL org.opencontainers.image.authors="Paul Gregoire <mondain@gmail.com>"

# Define as an ARG with a default value
ARG RED5_VERSION=2.0.34

ENV DEBIAN_FRONTEND=noninteractive
# Assign ARG value to ENV
ENV RED5_VERSION=${RED5_VERSION}

# Define RED5_HOME variable
ENV RED5_HOME=/opt/red5

RUN mkdir -p $RED5_HOME && \
apt-get update && \
apt-get install -y --no-install-recommends wget ca-certificates && \
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
wget -q https://github.com/Red5/red5-server/releases/download/v${RED5_VERSION}/red5-server-${RED5_VERSION}.tar.gz -O red5.tar.gz && \
tar -xzf red5.tar.gz -C ${RED5_HOME} --strip-components=1 && \
rm -rf red5.tar.gz

# https://docs.docker.com/userguide/dockervolumes/
VOLUME [ $RED5_HOME ]

WORKDIR /opt/red5

EXPOSE 843 1935 5080 5443 8081 8443

ENTRYPOINT ["./red5.sh"]
32 changes: 0 additions & 32 deletions red5-2.0.30-jdk21/Dockerfile

This file was deleted.

32 changes: 0 additions & 32 deletions red5-2.0.34-jdk21/Dockerfile

This file was deleted.