diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f2a4701 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +OPTS:= -it --network ex3_dev_containers_default ex3_dev_containers-gnd + +up: + docker compose up -d --build + +down: + docker compose down -v + +gnd: + docker run $(OPTS) /app/gnd.py + +gnd-sh: + docker run $(OPTS) /bin/sh + +sub: + docker compose logs sub -f + + +.PHONY: + up down gnd gnd-sh sub diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9633ee7 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +version: '3' + +services: + gnd: + build: + context: mocks + dockerfile: gnd.Dockerfile + com: + build: + context: mocks + dockerfile: com.Dockerfile + stop_grace_period: 0.25s + fsw: + build: + context: mocks + dockerfile: fsw.Dockerfile + stop_grace_period: 0.25s + sub: + build: + context: mocks + dockerfile: sub.Dockerfile + stop_grace_period: 0.25s diff --git a/mocks/com.Dockerfile b/mocks/com.Dockerfile new file mode 100644 index 0000000..cf0fbe8 --- /dev/null +++ b/mocks/com.Dockerfile @@ -0,0 +1,11 @@ +from python:3.10-alpine + +WORKDIR /app + +EXPOSE 5000 + +COPY common.py . + +COPY com.py . + +CMD ["./com.py"] diff --git a/mocks/common.py b/mocks/common.py index f32f98e..7a3d18d 100644 --- a/mocks/common.py +++ b/mocks/common.py @@ -2,11 +2,10 @@ import sys from typing import Callable -# TODO: Replace with host names ADDRESSES: dict[str, tuple[str, int]] = { - "com": ('0.0.0.0', 5000), - "fsw": ('0.0.0.0', 5001), - "sub": ('0.0.0.0', 5002), + "com": ('com', 5000), + "fsw": ('fsw', 5001), + "sub": ('sub', 5002), } diff --git a/mocks/fsw.Dockerfile b/mocks/fsw.Dockerfile new file mode 100644 index 0000000..5093116 --- /dev/null +++ b/mocks/fsw.Dockerfile @@ -0,0 +1,11 @@ +from python:3.10-alpine + +WORKDIR /app + +EXPOSE 5001 + +COPY common.py . + +COPY fsw.py . + +CMD ["./fsw.py"] diff --git a/mocks/gnd.Dockerfile b/mocks/gnd.Dockerfile new file mode 100644 index 0000000..56ecdd6 --- /dev/null +++ b/mocks/gnd.Dockerfile @@ -0,0 +1,7 @@ +from python:3.10-alpine + +WORKDIR /app + +COPY common.py . + +COPY gnd.py . diff --git a/mocks/gnd.py b/mocks/gnd.py index c21b95a..77630e2 100755 --- a/mocks/gnd.py +++ b/mocks/gnd.py @@ -14,4 +14,11 @@ def send_message(msg: str): if __name__ == "__main__": while True: - send_message(input("> ")) + try: + s = input("> ") + except EOFError: + break + try: + send_message(s) + except Exception as e: + print(e, file=sys.stderr) diff --git a/mocks/sub.Dockerfile b/mocks/sub.Dockerfile new file mode 100644 index 0000000..598d05d --- /dev/null +++ b/mocks/sub.Dockerfile @@ -0,0 +1,11 @@ +from python:3.10-alpine + +WORKDIR /app + +EXPOSE 5002 + +COPY common.py . + +COPY sub.py . + +CMD ["./sub.py"]