From 02a50118ef1abe32c35ff4241a57a56fa68bb6ee Mon Sep 17 00:00:00 2001 From: MrAvox <143508913+avoxmr@users.noreply.github.com> Date: Fri, 22 Sep 2023 19:01:34 +0100 Subject: [PATCH] Added Elixir images (#182) --- .github/workflows/elixir.yml | 42 ++++++++++++++++++++++++++++++++++++ README.md | 13 +++++++++++ elixir/1.12/Dockerfile | 15 +++++++++++++ elixir/1.13/Dockerfile | 15 +++++++++++++ elixir/1.14/Dockerfile | 15 +++++++++++++ elixir/1.15/Dockerfile | 15 +++++++++++++ elixir/entrypoint.sh | 16 ++++++++++++++ elixir/latest/Dockerfile | 15 +++++++++++++ 8 files changed, 146 insertions(+) create mode 100644 .github/workflows/elixir.yml create mode 100644 elixir/1.12/Dockerfile create mode 100644 elixir/1.13/Dockerfile create mode 100644 elixir/1.14/Dockerfile create mode 100644 elixir/1.15/Dockerfile create mode 100644 elixir/entrypoint.sh create mode 100644 elixir/latest/Dockerfile diff --git a/.github/workflows/elixir.yml b/.github/workflows/elixir.yml new file mode 100644 index 0000000..87d6fb0 --- /dev/null +++ b/.github/workflows/elixir.yml @@ -0,0 +1,42 @@ +name: build elixir +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * 1" + push: + branches: + - master + paths: + - elixir/** +jobs: + push: + name: "yolks:elixir_${{ matrix.tag }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: + - '1.15' + - '1.14' + - '1.13' + - '1.12' + - latest + steps: + - uses: actions/checkout@v3 + - uses: docker/setup-qemu-action@v2 + - uses: docker/setup-buildx-action@v2 + with: + buildkitd-flags: --debug + - uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.REGISTRY_TOKEN }} + - uses: docker/build-push-action@v4 + with: + context: ./elixir + file: ./elixir/${{ matrix.tag }}/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + ghcr.io/parkervcp/yolks:elixir_${{ matrix.tag }} diff --git a/README.md b/README.md index 201bd4a..a3ac45e 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,19 @@ is tagged correctly. * [`dotnet7.0`](/dotnet/7) * `ghcr.io/parkervcp/yolks:dotnet_7` +### [Elixir](/elixir) + +* [`elixir 1.12`](/elixir/1.12) + * `ghcr.io/parkervcp/yolks:elixir_1.12` +* [`elixir 1.13`](/elixir/1.13) + * `ghcr.io/parkervcp/yolks:elixir_1.13` +* [`elixir 1.14`](/elixir/1.14) + * `ghcr.io/parkervcp/yolks:elixir_1.14` +* [`elixir 1.15`](/elixir/1.12) + * `ghcr.io/parkervcp/yolks:elixir_1.15` +* [`elixir latest`](/elixir/latest) + * `ghcr.io/parkervcp/yolks:elixir_latest` + ### [Erlang](/erlang) * [`erlang22`](/erlang/22) diff --git a/elixir/1.12/Dockerfile b/elixir/1.12/Dockerfile new file mode 100644 index 0000000..35cc661 --- /dev/null +++ b/elixir/1.12/Dockerfile @@ -0,0 +1,15 @@ +FROM --platform=$TARGETOS/$TARGETARCH elixir:1.12.3-slim + +LABEL author="MrAvox" maintainer="mravox@proton.me" + +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 +WORKDIR /home/container + +ENTRYPOINT [] +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/elixir/1.13/Dockerfile b/elixir/1.13/Dockerfile new file mode 100644 index 0000000..79cc3dc --- /dev/null +++ b/elixir/1.13/Dockerfile @@ -0,0 +1,15 @@ +FROM --platform=$TARGETOS/$TARGETARCH elixir:1.13.4-slim + +LABEL author="MrAvox" maintainer="mravox@proton.me" + +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 +WORKDIR /home/container + +ENTRYPOINT [] +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/elixir/1.14/Dockerfile b/elixir/1.14/Dockerfile new file mode 100644 index 0000000..f5f08ca --- /dev/null +++ b/elixir/1.14/Dockerfile @@ -0,0 +1,15 @@ +FROM --platform=$TARGETOS/$TARGETARCH elixir:1.14.5-slim + +LABEL author="MrAvox" maintainer="mravox@proton.me" + +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 +WORKDIR /home/container + +ENTRYPOINT [] +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/elixir/1.15/Dockerfile b/elixir/1.15/Dockerfile new file mode 100644 index 0000000..2449340 --- /dev/null +++ b/elixir/1.15/Dockerfile @@ -0,0 +1,15 @@ +FROM --platform=$TARGETOS/$TARGETARCH elixir:1.15.4-slim + +LABEL author="MrAvox" maintainer="mravox@proton.me" + +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 +WORKDIR /home/container + +ENTRYPOINT [] +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/elixir/entrypoint.sh b/elixir/entrypoint.sh new file mode 100644 index 0000000..39f8bab --- /dev/null +++ b/elixir/entrypoint.sh @@ -0,0 +1,16 @@ +#!/bin/bash +cd /home/container + +# Make internal Docker IP address available to processes. +INTERNAL_IP=$(ip route get 1 | awk '{print $(NF-2);exit}') +export INTERNAL_IP + +# Replace Startup Variables +MODIFIED_STARTUP=$(echo -e ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g') +echo -e ":/home/container$ ${MODIFIED_STARTUP}" + +# Print Elixir Version +elixir -e 'IO.puts "Elixir " <> System.version()' + +# Run the Server +eval ${MODIFIED_STARTUP} diff --git a/elixir/latest/Dockerfile b/elixir/latest/Dockerfile new file mode 100644 index 0000000..1eeb9f5 --- /dev/null +++ b/elixir/latest/Dockerfile @@ -0,0 +1,15 @@ +FROM --platform=$TARGETOS/$TARGETARCH elixir:slim + +LABEL author="MrAvox" maintainer="mravox@proton.me" + +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 +WORKDIR /home/container + +ENTRYPOINT [] +COPY ./../entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ]