feat: add bot specific docker images

Migrates over docker images that are required to run specific bots
This commit is contained in:
Softwarenoob
2021-08-06 22:17:06 +03:00
parent 6b1fde7b50
commit 4650340592
9 changed files with 160 additions and 0 deletions

40
.github/workflows/bot.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: build bot
on:
schedule:
- cron: "0 0 * * 1"
push:
branches:
- master
paths:
- bot/**
jobs:
push:
name: "yolks:bot_${{ matrix.tag }}"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tag:
- bastion
- parkertron
- red
- sinusbot
steps:
- uses: actions/checkout@v2
- 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: ./bot
file: ./bot/${{ matrix.tag }}/Dockerfile
platforms: linux/amd64
push: true
tags: |
ghcr.io/parkervcp/yolks:bot_${{ matrix.tag }}

19
bot/bastion/Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
FROM node:14-buster
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
## install mongo
RUN wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add - \
&& echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list \
&& apt update \
&& apt install -y mongodb-org=4.2.7 mongodb-org-server=4.2.7 mongodb-org-shell=4.2.7 mongodb-org-mongos=4.2.7 mongodb-org-tools=4.2.7 \
## install bastion reqs
&& apt install -y python build-essential netcat ffmpeg \
## add container user
&& useradd -d /home/container -m container -s /bin/bash
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

12
bot/bastion/entrypoint.sh Normal file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# 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}

13
bot/parkertron/Dockerfile Normal file
View File

@@ -0,0 +1,13 @@
FROM alpine:3.9
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN apk add --update --no-cache git curl lua-stdlib lua musl-dev g++ libc-dev tesseract-ocr tesseract-ocr-dev \
&& adduser -D -h /home/container container
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/ash", "/entrypoint.sh"]

View File

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

19
bot/red/Dockerfile Normal file
View File

@@ -0,0 +1,19 @@
FROM python:3.8-slim
LABEL author="Michael Parker" maintainer="parker@pterodactyl.io"
RUN mkdir -p /usr/share/man/man1 \
&& apt update \
&& apt -y install git ca-certificates dnsutils iproute2 wget curl xz-utils git openjdk-11-jre \
zlib1g-dev libffi-dev git libmagickwand-dev unzip libaa1-dev build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev ffmpeg imagemagick \
&& pip install python-forecastio tweepy unidecode discord-text-sanitizer mcstatus bs4 sqlalchemy geocoder valve python-valve py-cpuinfo psutil \
&& useradd -m -d /home/container container \
&& mkdir -p /home/container/.config/Red-DiscordBot/ \
&& ln -s /home/container/.config/Red-DiscordBot/ /usr/local/share/Red-DiscordBot
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

12
bot/red/entrypoint.sh Normal file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
cd /home/container
# Make internal Docker IP address available to processes.
export INTERNAL_IP=`ip route get 1 | awk '{print $NF;exit}'`
# 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}

21
bot/sinusbot/Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
FROM ubuntu:18.04
LABEL maintainer="ki2007 <ki2007@damw.eu>" version="1.0"
ENV DEBIAN_FRONTEND noninteractive
# Install Dependencies
RUN apt update \
&& apt upgrade -y \
&& apt install -y ca-certificates less libasound2 libegl1-mesa libglib2.0-0 libnss3 libpci3 libpulse0 libxcursor1 libxslt1.1 libx11-xcb1 libxkbcommon0 locales pulseaudio python sudo x11vnc x11-xkb-utils xvfb iproute2 \
&& useradd -m -d /home/container container
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
USER container
ENV USER=container HOME=/home/container
WORKDIR /home/container
COPY ./entrypoint.sh /entrypoint.sh
CMD ["/bin/bash", "/entrypoint.sh"]

View File

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