feat: add bot specific docker images
Migrates over docker images that are required to run specific bots
This commit is contained in:
40
.github/workflows/bot.yml
vendored
Normal file
40
.github/workflows/bot.yml
vendored
Normal 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
19
bot/bastion/Dockerfile
Normal 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
12
bot/bastion/entrypoint.sh
Normal 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
13
bot/parkertron/Dockerfile
Normal 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"]
|
12
bot/parkertron/entrypoint.sh
Normal file
12
bot/parkertron/entrypoint.sh
Normal 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
19
bot/red/Dockerfile
Normal 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
12
bot/red/entrypoint.sh
Normal 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
21
bot/sinusbot/Dockerfile
Normal 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"]
|
12
bot/sinusbot/entrypoint.sh
Normal file
12
bot/sinusbot/entrypoint.sh
Normal 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}
|
Reference in New Issue
Block a user