Merge pull request #52 from CDE90/rust-lang

feat: add Rust (language) images
This commit is contained in:
Michael (Parker) Parker
2022-04-22 08:25:01 -04:00
committed by GitHub
7 changed files with 125 additions and 0 deletions

43
.github/workflows/rust.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: build rust
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- rust/**
jobs:
push:
name: "yolks:rust_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- '1.31'
- '1.56'
- '1.60'
- 'latest'
steps:
- uses: actions/checkout@v2
# Setup QEMU for ARM64 Build
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
with:
version: "v0.5.1"
buildkitd-flags: --debug
- uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- uses: docker/build-push-action@v2
with:
context: ./rust
file: ./rust/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/parkervcp/yolks:rust_${{ matrix.tag }}

View File

@@ -174,6 +174,17 @@ is tagged correctly.
* [`Redis 6`](/redis/6)
* `ghcr.io/parkervcp/yolks:redis_6`
### [Rust](/rust)
* ['rust1.31'](/rust/1.31)
* `ghcr.io/parkervcp/yolks:rust_1.31`
* ['rust1.56'](/rust/1.56)
* `ghcr.io/parkervcp/yolks:rust_1.56`
* ['rust1.60'](/rust/1.60)
* `ghcr.io/parkervcp/yolks:rust_1.60`
* ['rust latest'](/rust/latest)
* `ghcr.io/parkervcp/yolks:rust_latest`
### [Voice](/voice)
* [`TeaSpeak`](/teaspeak)

14
rust/1.31/Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
FROM --platform=$TARGETOS/$TARGETARCH rust:1.31-slim
LABEL author="Ethan Coward" maintainer="ethan.coward@icloud.com"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container CARGO_HOME=/home/container/.cargo
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

14
rust/1.56/Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
FROM --platform=$TARGETOS/$TARGETARCH rust:1.56-slim
LABEL author="Ethan Coward" maintainer="ethan.coward@icloud.com"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container CARGO_HOME=/home/container/.cargo
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

14
rust/1.60/Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
FROM --platform=$TARGETOS/$TARGETARCH rust:1.60-slim
LABEL author="Ethan Coward" maintainer="ethan.coward@icloud.com"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container CARGO_HOME=/home/container/.cargo
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

15
rust/entrypoint.sh Normal file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# Print current Rust version
cargo --version
# Replace Startup Variables
MODIFIED_STARTUP=$(echo -e $(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g'))
echo -e ":/home/container$ ${MODIFIED_STARTUP}"
# Run the Server
eval ${MODIFIED_STARTUP}

14
rust/latest/Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
FROM --platform=$TARGETOS/$TARGETARCH rust:slim
LABEL author="Ethan Coward" maintainer="ethan.coward@icloud.com"
RUN apt update \
&& apt -y install git dnsutils curl iproute2 ffmpeg \
&& useradd -m -d /home/container container
USER container
ENV USER=container HOME=/home/container CARGO_HOME=/home/container/.cargo
WORKDIR /home/container
COPY ./../entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]