Added docker-compose and Dockerfile.

This commit is contained in:
Alexander Huddleston 2020-04-25 17:09:07 -05:00
parent f272ca6436
commit ae58f7b782
6 changed files with 58 additions and 5 deletions

2
.gitignore vendored
View file

@ -3,7 +3,7 @@
**/__pycache__/** **/__pycache__/**
**.pyc **.pyc
Pipfile.lock Pipfile.lock
config.json **/config.json
data/*.jpg data/*.jpg
data/*.jpeg data/*.jpeg
data/*.png data/*.png

View file

@ -0,0 +1,35 @@
# Pull Python 3.8.1 on alpine
FROM python:3.8.1-alpine
RUN apk --no-cache add gcc \
musl-dev \
python3-dev \
g++ \
libxslt-dev
# Create a new user to run as and set the working directory
ENV USER=twitter_media_tool
ENV UID=991
ENV GID=991
RUN addgroup -g "${GID}" twitter_media_tool
RUN adduser \
--disabled-password \
--gecos "" \
--home "/home/twitter_media_tool" \
--ingroup "${USER}" \
--uid "${UID}" \
"${USER}"
USER twitter_media_tool
WORKDIR /home/twitter_media_tool/
ENV PATH="${PATH}:/home/twitter_media_tool/.local/bin"
COPY Pipfile Pipfile
RUN pip install pipenv
RUN pipenv install Pipfile
COPY twitter_media_tool.py twitter_media_tool.py
ENTRYPOINT [ "pipenv", "run", "python", "twitter_media_tool.py" ]

View file

@ -0,0 +1,17 @@
---
version: "3"
services:
twitter_media_tool:
restart: always
build:
context: .
dockerfile: Dockerfile
image: twitter_media_tool:latest
user: twitter_media_tool
container_name: twitter_media_tool_container_service
volumes:
- ./lib:/home/twitter_media_tool/lib
- ./config:/home/twitter_media_tool/config
- ./data:/home/twitter_media_tool/data
environment:
TMT_CONFIG_PATH: config/config.json

View file

@ -3,6 +3,7 @@
from tweepy import StreamListener from tweepy import StreamListener
from lib.archival import archive_media_status from lib.archival import archive_media_status
from lib.echo_nextcloud import nextcloud_upload_media from lib.echo_nextcloud import nextcloud_upload_media
import logging
class TweetStreamer(StreamListener): class TweetStreamer(StreamListener):

View file

@ -1,12 +1,12 @@
#!/usr/bin/python3 #!/usr/bin/python3
from json import load from json import load
from sys import argv from os import environ
def import_from_default_path(): def import_from_default_path():
try: try:
with open('config.json') as config_file: with open('config/config.json') as config_file:
return load(config_file) return load(config_file)
config_file.close() config_file.close()
except Exception as e: except Exception as e:
@ -15,9 +15,9 @@ def import_from_default_path():
def import_config_file(): def import_config_file():
if(len(argv) > 1): if('TMT_CONFIG_PATH' in environ.keys()):
try: try:
with open(argv[1]) as config_file: with open(f'{environ["TMT_CONFIG_PATH"]}') as config_file:
return load(config_file) return load(config_file)
config_file.close() config_file.close()
except: except: