From 22e836fbbf06e56b0d79593a087c374b36bcf613 Mon Sep 17 00:00:00 2001 From: Matthew Penner Date: Thu, 3 Dec 2020 19:05:20 -0700 Subject: [PATCH] Add source container, update GitHub Actions workflow --- .github/workflows/docker-publish.yml | 119 ++++----------------------- source/Dockerfile | 25 ++++++ source/entrypoint.sh | 25 ++++++ 3 files changed, 68 insertions(+), 101 deletions(-) create mode 100644 source/Dockerfile create mode 100644 source/entrypoint.sh diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index f50bd63..82bbb2e 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -12,7 +12,20 @@ jobs: push: name: Push runs-on: ubuntu-latest - if: github.event_name == 'push' + + strategy: + matrix: + image: + - "alpine" + - "java7" + - "java8" + - "java9" + - "java10" + - "java11" + - "java12" + - "java13" + - "java14" + - "source" steps: - name: Code Checkout @@ -21,108 +34,12 @@ jobs: - name: Registry Authentication run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login docker.pkg.github.com -u ${{ github.actor }} --password-stdin - - name: Build alpine Image - run: docker build ./alpine --tag alpine + - name: Build Image + run: docker build ./${{ matrix.image }} --tag alpine - - name: Build java7 Image - run: docker build ./java7 --tag java7 - - - name: Build java8 Image - run: docker build ./java8 --tag java8 - - - name: Build java9 Image - run: docker build ./java9 --tag java9 - - - name: Build java10 Image - run: docker build ./java10 --tag java10 - - - name: Build java11 Image - run: docker build ./java11 --tag java11 - - - name: Build java12 Image - run: docker build ./java12 --tag java12 - - - name: Build java13 Image - run: docker build ./java13 --tag java13 - - - name: Build java14 Image - run: docker build ./java14 --tag java14 - - - name: Push alpine Image + - name: Push Image run: | - IMAGE_NAME=alpine - IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - - name: Push java7 Image - run: | - IMAGE_NAME=java7 - IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - - name: Push java8 Image - run: | - IMAGE_NAME=java8 - IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - - name: Push java9 Image - run: | - IMAGE_NAME=java9 - IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - - name: Push java10 Image - run: | - IMAGE_NAME=java10 - IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - - name: Push java11 Image - run: | - IMAGE_NAME=java11 - IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - - name: Push java12 Image - run: | - IMAGE_NAME=java12 - IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - - name: Push java13 Image - run: | - IMAGE_NAME=java13 - IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - - docker tag $IMAGE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION - - - name: Push java14 Image - run: | - IMAGE_NAME=java14 + IMAGE_NAME=${{ matrix.image }} IMAGE_ID=docker.pkg.github.com/${{ github.repository }}/$IMAGE_NAME IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') diff --git a/source/Dockerfile b/source/Dockerfile new file mode 100644 index 0000000..ac73f58 --- /dev/null +++ b/source/Dockerfile @@ -0,0 +1,25 @@ +# +# Copyright (c) 2020 Matthew Penner +# +# This repository is licensed under the MIT License. +# https://github.com/matthewpi/images/blob/master/LICENSE.md +# + +FROM debian:stable-slim + +LABEL author="Matthew Penner" maintainer="matthew@pterodactyl.io" + +ENV DEBIAN_FRONTEND=noninteractive + +RUN dpkg --add-architecture i386 \ + && apt update \ + && apt upgrade -y \ + && apt install -y tar curl gcc g++ lib32gcc1 libgcc1 libcurl4-gnutls-dev:i386 libssl1.0.0:i386 libcurl4:i386 lib32tinfo5 libtinfo5:i386 lib32z1 lib32stdc++6 libncurses5:i386 libcurl3-gnutls:i386 iproute2 gdb libsdl1.2debian libfontconfig telnet net-tools netcat tzdata \ + && useradd -m -d /home/container container + +USER container +ENV USER=container HOME=/home/container +WORKDIR /home/container + +COPY ./entrypoint.sh /entrypoint.sh +CMD [ "/bin/bash", "/entrypoint.sh" ] diff --git a/source/entrypoint.sh b/source/entrypoint.sh new file mode 100644 index 0000000..cd71e59 --- /dev/null +++ b/source/entrypoint.sh @@ -0,0 +1,25 @@ +#!/bin/ash + +# +# Copyright (c) 2020 Matthew Penner +# +# This repository is licensed under the MIT License. +# https://github.com/matthewpi/images/blob/master/LICENSE.md +# + +# Default the TZ environment variable to UTC. +TZ=${TZ:-UTC} +export TZ + +# Switch to the container's working directory +cd /home/container + +# Set environment variable that holds the Internal Docker IP +export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'` + +# Replace variables in the startup command +MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` +echo "[container@pterodactyl ~]$ ${MODIFIED_STARTUP}" + +# Run the startup command +eval ${MODIFIED_STARTUP}