From c44a52b7ae30c80d73aab873509e32e3ac28312c Mon Sep 17 00:00:00 2001 From: Adrien Date: Fri, 26 May 2023 17:57:09 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Add=20backend=20and=20fron?= =?UTF-8?q?tend=20to=20docker-compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/.dockerignore | 7 +++++ backend/Dockerfile | 26 +++++++++++++++++++ .../docker-compose.yml => docker-compose.yml | 20 +++++++++----- frontend/Dockerfile | 4 +++ 4 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 backend/.dockerignore create mode 100644 backend/Dockerfile rename backend/docker-compose.yml => docker-compose.yml (82%) create mode 100644 frontend/Dockerfile diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..714e0da --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,7 @@ +docker +**/__pycache__ +poetry.lock +Dockerfile +docker-compose.yml +config +.venv \ No newline at end of file diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..9674411 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,26 @@ +FROM python:3.11-slim as builder + +WORKDIR /app +COPY . /app + +RUN apt update && apt install -y proj-bin + +RUN pip install --upgrade poetry && \ + poetry config virtualenvs.create false && \ + poetry install --only=main && \ + poetry export -f requirements.txt >> requirements.txt + +FROM python:3.11-slim as runtime + +COPY . /app +COPY --from=builder /app/requirements.txt /app + +RUN apt update && apt install -y postgresql libpq5 +RUN pip install --no-cache-dir -r /app/requirements.txt + +WORKDIR /app + +ENV CONFIG_PATH=./config.sample.yaml +ENV API_KEY=MwP7lbljnXIYAnmmmPRzasHsIknaiKqD + +CMD ["python", "./main.py"] diff --git a/backend/docker-compose.yml b/docker-compose.yml similarity index 82% rename from backend/docker-compose.yml rename to docker-compose.yml index 0c7657a..feb0d68 100644 --- a/backend/docker-compose.yml +++ b/docker-compose.yml @@ -15,8 +15,9 @@ services: ports: - "127.0.0.1:5432:5432" volumes: - - ./docker/database/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - - ./docker/database/data:/var/lib/postgresql/data + - ./backend/docker/database/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d + - ./backend/docker/database/data:/var/lib/postgresql/data + jaeger-agent: image: jaegertracing/jaeger-agent:latest @@ -45,10 +46,6 @@ services: ports: - "127.0.0.1:4317:4317" - "127.0.0.1:4318:4318" - # - "127.0.0.1:9411:9411" - # - "127.0.0.1:14250:14250" - # - "127.0.0.1:14268:14268" - # - "127.0.0.1:14269:14269" restart: on-failure depends_on: - cassandra-schema @@ -68,7 +65,16 @@ services: - "--cassandra.servers=cassandra" ports: - "127.0.0.1:16686:16686" - # - "127.0.0.1:16687:16687" restart: on-failure depends_on: - cassandra-schema + + carrramba-encore-rate-api: + build: ./backend/ + ports: + - "127.0.0.1:8080:8080" + + carrramba-encore-rate-frontend: + build: ./frontend/ + ports: + - "127.0.0.1:80:8081" diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..0ba0794 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,4 @@ +# pull the latest official nginx image +FROM nginx:mainline-alpine-slim + +COPY dist /usr/share/nginx/html