From 83b7e6b248a98b28f38ad58752d1f1ecacabe971 Mon Sep 17 00:00:00 2001 From: Leopere Date: Mon, 8 Oct 2018 18:20:54 -0400 Subject: [PATCH] added baseline Dockerfile and start.sh These should contain a good majority of the early stage work. Lots of debugging potentially ahead --- reflector.go/compile/Dockerfile | 7 ++- reflector.go/compile/start.sh | 90 +++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+), 2 deletions(-) diff --git a/reflector.go/compile/Dockerfile b/reflector.go/compile/Dockerfile index 841b881..ea8c3d8 100644 --- a/reflector.go/compile/Dockerfile +++ b/reflector.go/compile/Dockerfile @@ -10,9 +10,12 @@ RUN adduser reflector --gecos GECOS --shell /bin/bash --disabled-password --home RUN go get -u github.com/lbryio/reflector.go && \ cd "$(go env GOPATH)/src/github.com/lbryio/reflector.go" && \ make && \ - cp ./bin/prism-bin /usr/bin/prism-bin && \ + mv ./bin/prism-bin /usr/bin/prism-bin && \ chmod +x /usr/bin/prism-bin +RUN wget -O /data/config.tmpl https://raw.githubusercontent.com/lbryio/reflector.go/master/config.tmpl && \ + chown -R 1000:1000 /data/config.tmpl + USER reflector -#EXPOSE No idea yet. +CMD ["start"] diff --git a/reflector.go/compile/start.sh b/reflector.go/compile/start.sh index e69de29..5485053 100644 --- a/reflector.go/compile/start.sh +++ b/reflector.go/compile/start.sh @@ -0,0 +1,90 @@ +#!/bin/bash +#!/bin/sh + +## This variable will be what can override default launch args. I may modify this as I learn more about prism-bin +LAUNCHARGS="${CUSTOM_ARGS:-$2}" + +# ## Strings to replace. +AWS_ID_STR='YOUR-AWS-ID' +AWS_SECRET_STR='' +BUCKET_REGION_STR='' +BUCKET_NAME_STR='' +DB_USER_STR='' +DB_PASSWORD='' +DB_HOSTIP='' +DB_PORT='' +DB_NAME='' + +# ## Keys to re-insert +AWS_ID_KEY='' +AWS_SECRET_KEY='' +BUCKET_REGION_KEY='' +BUCKET_NAME_KEY='' +DB_USER_KEY='' +DB_PASSWORD='' +DB_HOSTIP='' +DB_PORT='' +DB_NAME='' + +# Environment Variables/Defaults +## Json sucks in BASH/Shell so you need to add trailing commas intermittently. +## Just pay attention to this. Also at some point I'll need to make a fringe +## case for handling key/values that aren't included in the default config. +AWS_ID="${AWS_ID:-YOUR-AWS-ID}" +AWS_SECRET="${AWS_SECRET:-YOUR_AWS_SECRET}" +BUCKET_REGION="${BUCKET_REGION:-YOUR_BUCKET_REGION}" +BUCKET_NAME="${BUCKET_NAME:-YOUR_BUCKET_NAME}" +DB_USER="${DB_USER:-DB_USER}" +DB_PASSWORD="${DB_PASSWORD:-YOUR_DB_PASSWORD}" +DB_HOSTIP="${DB_HOSTIP:-YOUR_DB_HOSTIP}" +DB_PORT="${DB_PORT:-YOUR_DB_PORT}" +DB_NAME="${DB_NAME:-YOUR_DB_NAME}" + +## Environment Variables +## Missing Vars off the hop SLACK_HOOK_URL +CONFIG_SETTINGS=( + AWS_ID + AWS_SECRET + BUCKET_REGION + BUCKET_NAME + DB_USER + DB_PASSWORD + DB_HOSTIP + DB_PORT + DB_NAME +) + +## This function might be a bit overkill as all key/value pairs are unique in this config. +function config_modify() { + for i in "${!CONFIG_SETTINGS[@]}"; do + # echo ${CONFIG_SETTINGS[$i]}"_KEY" + ## Indirect references http://tldp.org/LDP/abs/html/ivr.html + eval FROM_STRING=\$"${CONFIG_SETTINGS[$i]}_STR" + eval VALUE_STRING=\$${CONFIG_SETTINGS[$i]} + eval KEY_STRING=\$"${CONFIG_SETTINGS[$i]}_KEY" + TO_STRING="$KEY_STRING $VALUE_STRING" + ## DEBUG + # echo DEBUG FROM_STRING: "$FROM_STRING" + # echo DEBUG VALUE_STRING: $VALUE_STRING + # echo DEBUG KEY_STRING: $KEY_STRING + # echo DEBUG TO_STRING: "$TO_STRING" + sed -i "s/$FROM_STRING/${TO_STRING:-$FROM_STRING}/g" /data/config.tmpl + done +} +config_modify + +case $1 in + cluster ) + prism-bin cluster ${LAUNCHARGS:-default_args} + ;; + dht ) + prism-bin dht ${LAUNCHARGS:-default_args} + ;; + peer ) + prism-bin peer ${LAUNCHARGS:-default_args} + ;; + reflector ) + prism-bin reflector ${LAUNCHARGS:-default_args} + ;; +esac +prism-bin