Dockerization

This commit is contained in:
rasmus 2020-12-23 06:52:52 +02:00
parent 15cfab61cc
commit d22766ba88
5 changed files with 36 additions and 4 deletions

6
.gitignore vendored
View File

@ -1,2 +1,6 @@
__pycache__
scraperMain.out
scraperMain.out
.env
bss.env
id_rsa
id_rsa.pub

13
Dockerfile Normal file
View File

@ -0,0 +1,13 @@
FROM python:3-slim
WORKDIR /bss
COPY requirements.txt requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
RUN mkdir .ssh
COPY . .
EXPOSE 80
# port 80, one worker, 210s timeout, from prom.py file.
CMD [ "gunicorn", "-b :80", "-w 1", "-t 210", "prom:app" ]

10
docker-compose.yml Normal file
View File

@ -0,0 +1,10 @@
version: '3'
services:
bss:
build: .
volumes:
- './id_rsa:/bss/.ssh/id_rsa'
#ports:
# - '8000:80' # EXPOSING TO THE INTERWEBZ IS A BAD IDEA. USE DOCKER NETWORKS OR A REVERSE PROXY INSTEAD.
env_file:
- bss.env # SSH_HOSTNAME=172.16.16.16

View File

@ -1,9 +1,11 @@
"""
ENV VARIABLES AVAILABLE:
- SSH_HOSTNAME
- SSH_KEYPATH
- SSH_KEYPATH (defaults: /bss/id_rsa)
- PREFIX (default: bladetest_)
"""
"""
Run in development env:
export FLASK_ENV=development
export FLASK_APP=prom.py
flask run
@ -13,11 +15,11 @@ import os # for ENV arguments
import scraperMain, prom_servers
PREFIX = 'bladetest_'
enc = 'k-space-blade-02' # for now ~~hard~~softcoded in, we'd need to add parsing in hostnames, and add a similar enc env var.
hostname = str(os.environ['SSH_HOSTNAME'])
sshkeypath = os.getenv('SSH_KEYPATH')
sshkeypath = os.getenv('SSH_KEYPATH','/bss/.ssh/id_rsa')
PREFIX = os.getenv('PREFIX','bladetest_')
### FLASK ###
app = Flask(__name__)

3
requirements.txt Normal file
View File

@ -0,0 +1,3 @@
paramiko ~= 2.7.2
Flask ~= 1.1.2
gunicorn ~= 20.0.4