-
-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## Description **What(what issue does this code solve/what feature does it add):** We are adding the `Dockerfile` to build a moq-relay **How(how does it solve it):** 1. Added `relay.Dockerfile` with all the docker code to build kixelated's moq-relay. 2. Added `relay.yml` in workflows for building and publishing the docker image ## Required Checklist: - [ ] I have added any necessary documentation and comments in my code (where appropriate) - [ ] I have added tests to make sure my code runs in all contexts ## Further comments
- Loading branch information
1 parent
601c268
commit 7d5d8be
Showing
3 changed files
with
132 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
#Tabs not spaces, you moron :) | ||
|
||
name: CI for netris:relay | ||
|
||
on: | ||
pull_request: | ||
paths: | ||
- "relay.Dockerfile" | ||
- ".github/workflows/relay.yml" | ||
schedule: | ||
- cron: 0 0 * * * # At the end of everyday | ||
push: | ||
branches: [main] | ||
paths: | ||
- "relay.Dockerfile" | ||
- ".github/workflows/relay.yml" | ||
tags: | ||
- v*.*.* | ||
release: | ||
types: [created] | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
env: | ||
REGISTRY: ghcr.io | ||
IMAGE_NAME: wanjohiryan/netris | ||
BASE_TAG_PREFIX: relay | ||
|
||
jobs: | ||
build-docker-pr: | ||
name: Build image on pr | ||
runs-on: ubuntu-latest | ||
if: ${{ github.event_name == 'pull_request' }} | ||
steps: | ||
- | ||
name: Checkout repo | ||
uses: actions/checkout@v4 | ||
- | ||
name: Setup Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
- | ||
name: Build Docker image | ||
uses: docker/build-push-action@v5 | ||
with: | ||
file: relay.Dockerfile | ||
context: ./ | ||
push: false | ||
load: true | ||
tags: netris:relay | ||
|
||
build-docker-main: | ||
name: Build image on merge | ||
if: ${{github.ref == 'refs/heads/main'}} | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
packages: write | ||
steps: | ||
- | ||
name: Checkout repo | ||
uses: actions/checkout@v4 | ||
- | ||
name: Log into registry ${{ env.REGISTRY }} | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: ${{ env.REGISTRY }} | ||
username: ${{ github.actor }} | ||
password: ${{ secrets.GITHUB_TOKEN }} | ||
- | ||
name: Extract Container metadata | ||
id: meta | ||
uses: docker/metadata-action@v5 | ||
with: | ||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.BASE_TAG_PREFIX }} | ||
# | ||
#tag on release, and a nightly build for 'dev' | ||
tags: | | ||
type=raw,value=nightly,enable={{is_default_branch}} | ||
type=ref,event=tag | ||
type=semver,pattern={{version}} | ||
type=semver,pattern={{major}}.{{minor}} | ||
type=semver,pattern={{major}} | ||
- | ||
name: Build Docker image | ||
uses: docker/build-push-action@v5 | ||
with: | ||
file: relay.Dockerfile | ||
context: ./ | ||
push: true | ||
tags: ${{ steps.meta.outputs.tags }} | ||
labels: ${{ steps.meta.outputs.labels }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#Git clone kixelated's moq-rs then build the moq-relay and push it to the final image | ||
#Copied from https://github.com/kixelated/moq-rs/blob/main/Dockerfile | ||
FROM rust:bookworm as builder | ||
|
||
WORKDIR /build | ||
|
||
RUN apt-get install -y git | ||
|
||
RUN git clone https://github.com/kixelated/moq-rs . | ||
|
||
RUN --mount=type=cache,target=/usr/local/cargo/registry \ | ||
--mount=type=cache,target=/build/target \ | ||
cargo build --release && cp /build/target/release/moq-* /usr/local/cargo/bin | ||
|
||
FROM debian:bookworm-slim | ||
|
||
RUN apt-get update && \ | ||
apt-get install -y --no-install-recommends ca-certificates curl libssl3 && \ | ||
rm -rf /var/lib/apt/lists/* | ||
|
||
COPY --from=builder /usr/local/cargo/bin/moq-relay /usr/local/bin | ||
|
||
CMD ["moq-relay"] |