From 78496a5223bed9e08486865c13cef9852897c056 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Wed, 21 Dec 2022 16:28:21 +0900 Subject: [PATCH] Add scorometer dockerfile --- .editorconfig | 4 ++++ docker-compose.dev.yml | 10 ++++++++++ docker-compose.yml | 6 ++++++ scorometer/.dockerignore | 3 +++ scorometer/Dockerfile | 13 +++++++++++++ scorometer/Dockerfile.dev | 12 ++++++++++++ scorometer/main.py | 18 +++++++++++------- 7 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 scorometer/.dockerignore create mode 100644 scorometer/Dockerfile create mode 100644 scorometer/Dockerfile.dev mode change 100644 => 100755 scorometer/main.py diff --git a/.editorconfig b/.editorconfig index b696824..1aa37fe 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,3 +7,7 @@ trim_trailing_whitespace = true insert_final_newline = true indent_style = tab indent_size = tab + +[{*.yaml,*.yml}] +indent_style = space +indent_size = 2 diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 1036960..192ae05 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -14,6 +14,16 @@ services: condition: service_healthy env_file: - .env + + scorometer: + build: + context: ./scorometer + dockerfile: Dockerfile.dev + ports: + - "6543:6543" + volumes: + - ./scorometer:/app + - ./musics:/musics db: container_name: db diff --git a/docker-compose.yml b/docker-compose.yml index 3ff70f7..d0361cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,12 @@ services: - .env volumes: - ./musics:/musics + scorometer: + build: ./scorometer + ports: + - "6543:6543" + volumes: + - ./musics:/musics db: container_name: db image: postgres:alpine3.14 diff --git a/scorometer/.dockerignore b/scorometer/.dockerignore new file mode 100644 index 0000000..c74da99 --- /dev/null +++ b/scorometer/.dockerignore @@ -0,0 +1,3 @@ +Dockerfile +Dockerfile.dev +.dockerignore diff --git a/scorometer/Dockerfile b/scorometer/Dockerfile new file mode 100644 index 0000000..d0b2a6d --- /dev/null +++ b/scorometer/Dockerfile @@ -0,0 +1,13 @@ +FROM python:latest +RUN wget -q -O /tmp/websocketd.zip \ + https://github.com/joewalnes/websocketd/releases/download/v0.4.1/websocketd-0.4.1-linux_amd64.zip \ + && unzip /tmp/websocketd.zip -d /tmp/websocketd && mv /tmp/websocketd/websocketd /usr/bin \ + && chmod +x /usr/bin/websocketd + +WORKDIR /app + +COPY ./requirements.txt . +RUN pip install -r ./requirements.txt + +COPY . . +CMD ["/usr/bin/websocketd", "--port=6543", "--staticdir=." "./main.py"] diff --git a/scorometer/Dockerfile.dev b/scorometer/Dockerfile.dev new file mode 100644 index 0000000..24f87ec --- /dev/null +++ b/scorometer/Dockerfile.dev @@ -0,0 +1,12 @@ +FROM python:latest +RUN wget -q -O /tmp/websocketd.zip \ + https://github.com/joewalnes/websocketd/releases/download/v0.4.1/websocketd-0.4.1-linux_amd64.zip \ + && unzip /tmp/websocketd.zip -d /tmp/websocketd && mv /tmp/websocketd/websocketd /usr/bin \ + && chmod +x /usr/bin/websocketd + +WORKDIR /app + +COPY ./requirements.txt . +RUN pip install -r ./requirements.txt + +CMD ["/usr/bin/websocketd", "--port=6543", "--devconsole", "--", "python3", "./main.py"] diff --git a/scorometer/main.py b/scorometer/main.py old mode 100644 new mode 100755 index 2e55328..e516e81 --- a/scorometer/main.py +++ b/scorometer/main.py @@ -1,3 +1,4 @@ +#!/usr/bin/python3 from time import sleep from chroma_case.Partition import Partition from chroma_case.Note import Note @@ -78,13 +79,16 @@ class Scorometer(): self.sendEnd(0, {}) def main(): - start_message = json.loads(input()) - if start_message["type"] != "start" or "name" not in start_message.keys(): - print(json.dumps({"error": "Error with the start message"})) - exit() - song_name = start_message["name"] - sc = Scorometer(f"partitions/{song_name}.midi") - sc.gameLoop() + try: + start_message = json.loads(input()) + if start_message["type"] != "start" or "name" not in start_message.keys(): + print(json.dumps({"error": "Error with the start message"})) + exit() + song_name = start_message["name"] + sc = Scorometer(f"partitions/{song_name}.midi") + sc.gameLoop() + except Exception as error: + print({ "error": error }) if __name__ == "__main__": main()